ディレクティブを使用しているときに、スコープの概念に苦労しています。公式 ドキュメントや半ダースのブログなどを読みましたが、これを行うことができません。
テキスト入力用に 5 つのフィールドがあります。私が達成したいのは、1つのフィールドが満たされている場合、次の兄弟が表示されることです:
<table>
<tr ng-repeat="entry in activeField.entries">
<td entry-value contenteditable="">{{entry.value_0}}</td>
<td entry-value contenteditable="" ng-show="entry.value_0">{{entry.value_1}}</td>
<td entry-value contenteditable="" ng-show="entry.value_1">{{entry.value_2}}</td>
<td entry-value contenteditable="" ng-show="entry.value_2">{{entry.value_3}}</td>
<td entry-value contenteditable="" ng-show="entry.value_3">{{entry.value_4}}</td>
</tr>
</table>
これが私の指示ですentryValue
terminal.directive('entryValue',function(){
return{
restrict: 'A',
controller: 'terminalController',
link: function(scope, element){
element.bind('input',function(){
// Here i want to update the scope
})
}
}
});
ユーザーが入力を行うと、オブジェクトの activeField を含むコントローラーのスコープにその値をプッシュしたいと考えています。$watch をディレクティブ リンク関数にバインドしようとしましscope.$apply()
たが、どちらも機能しません。
助けていただければ幸いです