In this plunk l'obiettivo è visualizzare un messaggio di errore in base a una convalida nel controller (invece dei built-in required
o min-length
). L'errore del messaggio non viene visualizzato quando è impostato il messaggio ng-message-exp. Qualche idea su come farlo funzionare?Visualizza errore personalizzato 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');
}
};
});
Sembra che tu stia overcomplicating cose. Perché preoccuparsi di estrarre l'elemento del modulo '$ modelValue'? Perché non controllare semplicemente 'ng-model' the' $ scope.data.field1'? – ryanyuyu
anche se lo faccio, il messaggio di errore non viene visualizzato – ps0604