一般的なフォーム検証インジケーターを作成しようとしています。フォームが有効な場合は、フォームが有効であることを示すメッセージが表示されます。それ以外の場合は、フォームが有効でないことを示すエラーが表示されます。
bookingForm.$valid
or SOMEFORM.$valid
-を使用していますが、機能しng-show
ません。{{formValid}}
と実際のフォームモデルの関係がおかしいと思います。
これが私の指示です:
sharedServices.directive('formValid', function() {
return {
restrict: 'A',
scope: {
formValid: '@'
},
template: '<div class="alert alert-warning" ng-show="!{{formValid}}.$valid"><b>ATH!</b> Útfylling ekki í lagi</div>' +
'<div class="alert alert-success" ng-show="{{formValid}}.$valid"><b>OK!</b> Útfylling í lagi</div>',
link: function(scope, element, attrs) {
scope.formValid = attrs.formValid;
}
};
});
これが私の使用法です:
<div form-valid="bookingForm"></div>
<form name="bookingForm">...</form>
<div form-valid="contactForm"></div>
<form name="contactForm">...</form>
フォーム名(モデル) をディレクティブのテンプレートに渡し、それに応じてフォーム モデルで $valid が true/false であるかどうかを表示したいと考えています。テンプレートをコンパイルする必要がありますか、またはこれを達成するにはどうすればよいですか?
これが機能しないことを示す GIF を次に示しbookingForm.$valid
ます。HTML では正しく、ディレクティブのテンプレートでは常に false です。