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