比方说,我有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