私は角度が初めてで、間違ったことをしようとしているのかもしれません。
私がしようとしているのは、フォームの特定の入力フィールドの検証メッセージを表示できる検証メッセージ ディレクティブを作成することです。入力フィールドに値がない場合に備えて、必須フィールドの検証メッセージのみを表示する必要があります。
私は次のHTMLで試しました:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<form name="myForm">
<input name="myInput" type="text" x-ng-model="object.input" required/><br/>
<span ng-show="myForm.myInput.$error.required" >Value required (working)</span><br/>
<span x-msg-required="myForm.myInput"></span>
</form>
</body>
</html>
そしてJS:
var app = angular.module('myApp', []);
app.directive('msgRequired', function() {
return {
link : function(scope, element, attrs) {
element.text('Value required');
attrs.$set('ngShow', attrs.msgRequired + '.$error.required' );
}
};
});
out ディレクティブのない最初の span 要素には、期待どおりの検証メッセージが表示されます。私のディレクティブを含むスパン要素は、常に検証メッセージを表示しているようです。angularのディレクティブを理解していないことは確かです。何が欠けていますか、または角度で検証メッセージを合理化するより良い方法はありますか?
プランカーがあります: http://plnkr.co/edit/Gjvol8inw1DlWjHomZQw