In this plunk Цель состоит в том, чтобы показать сообщение об ошибке на основе проверки в контроллере (вместо встроенных модулей required
или min-length
). Ошибка сообщения не отображается, когда установлен ng-message-exp. Любые идеи, как сделать эту работу?Отображение пользовательской ошибки 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');
}
};
});
Похоже, вы усложнять вещи. Зачем беспокоиться о том, чтобы вырвать элемент '$ modelValue элемента формы? Почему бы просто не проверить 'ng-model'' $ scope.data.field1'? – ryanyuyu
, даже если я это сделаю, сообщение об ошибке не отображается – ps0604