Ich habe eine Aurelia App und verwende das Aurelia-Validierungstool für die clientseitige Validierung. Ich möchte das validationMessages
Wörterbuch verwenden, um eine Liste der benutzerdefinierten Validierung Nachrichten zu definieren, während meiner App verwenden withMessageKey
mit etwa so:Verwendung von mitMessageKey für benutzerdefinierte Validierungsnachrichten in Aurelia
import {validationMessages} from 'aurelia-validation';
validationMessages['customMessage1'] = `My first custom message`;
validationMessages['customMessage2'] = `My second custom message`;
Und dann, wenn ich die Validierungsregeln für die Klasse festgelegt:
import { ValidationRules } from "aurelia-validation";
export class SampleObject {
text1;
text2;
constructor() {
ValidationRules
.ensure(a => a.text1)
.required()
.then().satisfies(x => x.trim() === x)
.withMessageKey('customMessage1')
.ensure(a => a.text2)
.satisfies(x => x.length > 5)
.withMessageKey('customMessage2')
.on(this);
}
};
Die Validierung funktioniert, aber die benutzerdefinierten Nachrichten werden nicht angezeigt, die Standardnachrichten nicht. Wenn ich zum Beispiel stattdessen withMessage('My first custom message')
verwende, funktioniert es zwar, aber ich möchte alle meine benutzerdefinierten Nachrichten für die Verwendung in der gesamten App an einem Ort aufbewahren.
Was mache ich falsch?
In welcher Datei definieren Sie Ihre benutzerdefinierten Nachrichten? Sind Sie sicher, dass die Datei geladen ist? Können Sie versuchen, die benutzerdefinierten Nachrichten in derselben Datei zu speichern, in der Sie Ihre Validierungsregeln deklarieren? – nemesv
Ich habe versucht, die benutzerdefinierten Nachrichten in eine separate Datei in derselben Datei wie die Klasse (aber außerhalb der Klasse) und innerhalb des Ansichtsmodells, in dem die Klasse verwendet wird, zu setzen. Keine davon funktioniert. Ich konnte es zur Arbeit bringen, wenn ich die Validierungsnachrichten innerhalb der Klasse einfüge, aber das ist nicht wirklich das, was ich suche, weil ich sie in der ganzen App verwenden möchte. – yammerade
Kannst du auch versuchen, die 'validationMessages' in deiner Klasse zu importieren ? Ändern Sie Ihre erste Zeile in der Klasse zu importieren ValidationRules, validationMessages} von "aurelia-validation"; – LStarky