私は検証をセットアップしており、エラーを表示するためにngMessages
を使用しています。しかし、私はngMessages
の周りにいくつかのHTMLを追加する(多くのコードの重複を避けるために)ラッパーディレクティブを作成したいと思います。エラーメッセージを表示する指示
<div class="help-block validator">
<div ng-messages="registerForm.email.$error" ng-if="registerForm.email.$touched">
<p ng-message="required">This field is required.</p>
</div>
</div>
私はちょうどこのような何かを書きたい::
だからではなく、各入力にこれを記述することの
<error-message messages='{"required": "This field is required."}' error="registerForm.email.$error" touched="registerForm.email.$touched"></error-message>
私のディレクティブを使用して問題がerror
とtouched
が出てくるということです文字列としてJS式として評価されません。私は$eval
にしようとしましたが、それはエラーを投げます。
は、ここに私のディレクティブです:
angular
.module('myApp')
.directive("errorMessage", function() {
return {
restrict: "E",
replace: true,
scope: {
'messages': '=',
'error': '=',
'touched': '='
},
template: '<div class="help-block validator">' +
'<div ng-messages="error" ng-if="touched">' +
'<div ng-repeat="(key, message) in messages">' +
'<p ng-message="key">{{message}}</p>' +
'</div>' +
'</div>' +
'</div>',
link: function (scope, elem, attrs) {
scope.error = attrs.error;
scope.touched = attrs.touched;
scope.messages = scope.$eval(attrs.messages); // this works
}
};
});
私はこれをやって行くべきか任意のアイデア?