比方說,我有2個指令:「家長」(即表)和「孩子」(TR),我想是能夠選擇的子元素,並一直在我父母指導他們的名單(我認爲管制員是唯一可能的地方,不是嗎?)。 我處理click事件,以更新存儲在我的控制器列表,它工作正常,但我也想保持「選擇」類選擇的項目,但由於選擇還可以通過父指令的控制器來改變(並修改控制器中的DOM是「禁止」),我能想到的唯一可能性是我的子指令中的一個觀察者。AngularJS自定義指令與多選
看一看的例子,請:
angular.module('App')
.directive('parent', function() {
return {
scope : {},
controller: function($scope) {
this.selectedItems = [];
}
}
}).directive('child', function() {
return {
require: '^parent',
link: function(scope, element, attrs, controller) {
scope.$watchCollection('controller.selectedItems', function() {
//add or remove 'selected' class here.
}
}
}
});
這不起作用(觀察者事件觸發只有當數組引用的變化,而不是單個元素)進行設計,它似乎並不正確的,你能否提供一個更好的方法來解決這個問題?
更新:
注意controller.selectedItems
在控制器修改,但是孩子的指令似乎並不看任何改變。
根據您的反饋添加了固定的解決方案。 – morels