publish.selected_tags
ディレクティブとコントローラーの間に双方向バインド変数があります。
$watch
コントローラーでその変数を保持しました:
$scope.$watch('publish.selected_tags', function(new_val, old_val) {
console.log(new_val); //print new value
})
私が直面している問題は、アイテムをリストにプッシュすると、が起動されないことです:selected_tags
$watch
return {
scope: {
selected_tags: '='
},
link: function(scope, element, attrs) {
scope.selected_tags.push('item') //watch in the controller not getting fired
}
}
ただし、配列に割り当てる と、コントローラーが起動します。selected_tags
$watch
return {
scope: {
selected_tags: '='
},
link: function(scope, element, attrs) {
scope.selected_tags = ['item'] //watch in the controller getting fired!
}
}
なぜこうなった?$watch
要素をプッシュしたい場合、どのように発火させることができますか?