角度コントローラー内にいくつかの追加機能を備えたテキスト入力を表す指示があります。最大長がディレクティブに渡されるので、入力された入力テキストは、その解析値に基づいてディレクティブ内で制限できます。 最大の長さは、ユーザの活動に基づいて時々変化するコントローラ変数を使用して決定されます。ディレクティブがコントローラー内のディレクティブ属性値の変更指示を再レンダリングします。
<text-box-directive data-max-length="{{maxLength}}"></<text-box-directive>
maxLengthの変数は、変数の変更は、指令値に更新されないにもかかわらず、属性として使用されるので、このディレクティブ
angular.module('common.directives')
.directive('textBoxDirective', function ($parse) {
return {
scope: {
// some additional scope variables
},
link: function (scope.element, attrs) {
scope.maxLength = $parse(attrs.maxLength)();
}
}
}
で以下に示します。その指示。私は時にコントローラの値の変化は、この値を更新することにしたいが、それでもmaxLengthの変数がディレクティブに属性であることが要求されるすべての
あなたがここで何を求めているかは本当に明確ではありません。 Angularは動的再レンダリングを使用します。すでに** $ダイジェストサイクル中にすべてを再レンダリングします。あなたが '$ digest'の影響を受けるべきものがあれば、コード**を表示するべきです。 [mcve]がなければ、他人が提供できる唯一のものは盲目的な推測です。 – Claies
質問を更新しました:) –
なぜここで '$ parse'を使用していますか?あなたのHTMLに単一の中括弧( '{}')しか使わないのはなぜですか?単にプロパティを渡し、 'scope'で普通の双方向バインディングを使用します..... – Claies