In this plunk Ziel ist es, eine Fehlermeldung basierend auf einer Validierung im Controller zu zeigen (anstelle der integrierten required
oder min-length
). Der Nachrichtenfehler wird nicht angezeigt, wenn die ng-message-exp festgelegt ist. Irgendwelche Ideen, wie das funktioniert?Angezeigter Fehler ngMessage
HTML
<body ng-app="ngMessagesExample" ng-controller="ctl">
<form name="myForm" novalidate ng-submit="submitForm(myForm)">
<label>
This field is only valid when 'aaa' is entered
<input type="text"
ng-model="data.field1"
name="field1" />
</label>
<div ng-messages="myForm.field1.$error" style="color:red">
<div ng-message-exp="validationError">this is the error</div>
</div>
<br/><br/>
<button style="float:left" type="submit">Submit</button>
</form>
Javascript
var app = angular.module('ngMessagesExample', ['ngMessages']);
app.controller('ctl', function ($scope) {
$scope.submitForm = function(form) {
if (form.field1.$modelValue != 'aaa') {
$scope.validationError = true;
console.log('show error');
}
else {
$scope.validationError = false;
console.log('don\'t show error');
}
};
});
Es sieht aus wie Sie die Dinge overcomplicating sind. Warum sollten Sie sich damit beschäftigen, das '$ modelValue' des Formularelements auszulöschen? Warum sollte man nicht einfach das 'ng-Modell' '$ scope.data.field1' überprüfen? – ryanyuyu
auch wenn ich das tue, wird die Fehlermeldung nicht angezeigt – ps0604