基本的に、ディレクティブ内から式の変更をリッスンするにはどうすればよいですか?
ドキュメント化されていないものを使用して、ng-required
条件付きで特定のフィールドを要求しています:
<input type="checkbox" ng-model="partner" checked />
<input ng-model="partnerName" placeholder="required" ng-required="partner" />
これはうまく機能します(これが Plunkr です)。これに関する唯一の問題は、placeholder
実際に必要かどうかに関係なく、「必要な」テキストが保持されることです。
そこで、独自のディレクティブを作成することにしました。これがどのように機能するかは次のとおりです。
<input ng-placeholder="{ 'required': partner }" />
アイデアは角度の に似てng-class
いますが、これを達成する方法がありません。ここに私がこれまでに持っているものがあります:
app.directive('ngPlaceholder', function ($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
console.log( scope.$eval(attrs.ngPlaceholder) );
}
}
});
placeholder
値を決定するために使用できる素敵なオブジェクトをログに記録します。
{ required: true }
しかし、どのように$digest
/$apply
サイクルにフックして、placeholder
属性partner
が変更されるたびに更新するのでしょうか?