タイトルが明確でない場合は申し訳ありませんが、私がやろうとしていることは次のとおりです。
複数のサインアップ フォームがあり、それぞれにパスワード フィールドがあります。ここで、パスワードにいくつかの要件を設定したいと思います。5 より長いパスワードを取得したい。
私は持っている:
<form name="myForm">
<!-- some elements -->
<input type="password" required ng-model="user.password" name="password" ng-minlength="5">
そしてその直後:
<div ng-show="myForm.password.$error.minlength">
Password is too short.
</div>
<!-- some other elements -->
</form>
このエラー メッセージをディレクティブにリファクタリングしようと思ったのですが、唯一の問題は、フォームの名前をディレクティブに正しく渡すことができないことです。
ディレクティブは次のようになります。
myApp.directive('passwordLengthError', [function () {
return {
restrict: 'E',
replace: true,
template:'<div ng-show="{{form}}.password.$error.minlength">Password is too short.</div>',
scope: {
form: '@'
}
};
}]);
そして私はそれを次のように呼びます:
<div>
<password-length-error form="myForm"/>
</div>
Chrome の Web インスペクタをチェックインすると、パラメータがそこにあることがわかります。
<div ng-show="myForm.password.$error.minlength">
ただし、実際には機能しません。パスワードが 5 文字未満の場合、メッセージがポップアップ表示されません。
これを機能させる方法はありますか、それとも不可能ですか? 前もって感謝します。