Ich bin neu bei Aurelia. Ich möchte die Validierung an mein benutzerdefiniertes Element übergeben.Aurelia-Validierung: Validierungsfehler werden nicht korrekt angezeigt
Die Validierung funktioniert, aber die Validierungsfehler werden auf dem Bildschirm nicht korrekt angezeigt.
Ich habe 2 Probleme:
- Es gibt keine Validierung ist, bevor ich das Formular
- Nach Absenden des Formulars einreichen. Ich bekomme immer noch ein Fehler bei der Überprüfung, wenn ich alles richtig zu füllen, wird der Validierungsfehler ‚ist erforderlich.‘ (Ich printscreen nahm, gibt es acht Zeichen)
welcome.html
<template>
<require from="./my-element"></require>
<my-element name.bind="myName" val.bind="validation"></my-element>
</template>
willkommen Js
import {Validation} from 'aurelia-validation';
export class Welcome {
myName = 'the name';
static inject = [Validation]
constructor(validation) {
this.validation = validation.on(this)
.ensure('name')
.isNotEmpty()
.hasMinLength(3)
.hasMaxLength(10);
}
}
my-element.html
<template>
<form role="form" submit.delegate="save()" validate.bind="val">
<div class="form-group">
<label>name</label>
<input type="text" value.bind="name"><br/>
</div>
<button type="submit">Save</button>
</form>
</template>
my-element.js
import {bindable} from 'aurelia-framework';
export class MyElement{
@bindable name;
@bindable val;
static inject = [Element];
constructor(element){
this.element = element;
}
save(){
this.val.validate()
.then(() => {
alert('correct');
}).catch(error => {
alert('not correct');
});
}
}
Danke für Ihr Hilfe. Eines der beiden Probleme ist gelöst. Aber leider werden die Fehler nicht auf dem Bildschirm angezeigt. Wenn der Name nicht gültig ist, wird nichts auf dem Bildschirm angezeigt. – abc
Tut mir leid, ja, das habe ich nach der Veröffentlichung bemerkt. Ich denke, das Problem ist die Validierung Viewstrategy erkennt Ihr Element nicht als das Steuerelement für die Modelleigenschaft. Ich werde heute Abend noch einen Blick darauf werfen. – JamesCarters
Vielen Dank – abc