以下是我们使用$watchCollection
$scope.$watchCollection(TwitterDashboardService.getSelectedList, updateList);
据我所知$watchCollection
观察集合中的变化,如数组等。
但在这种情况下TwitterDashboardService.getSelectedList
是一个函数。它的定义如下 -
this.getSelectedList = function() {
return data.items.filter(function(item) {
return !!item.selected;
});
};
我无法弄清楚何时会调用处理程序updateList
?
请帮忙。我是棱角分明的新人。
答案 0 :(得分:0)
$ watchCollection还可用于监视返回数组或对象实例的函数,并在任何值更改时触发。
如果您只想观看数组的子集,它非常方便。只需设置一个只返回要监视的值的函数。
在您的特定场景中,它将返回data'items列表,其中属性“selected”设置为true。例如,如果您的项目列表是:
[{名: “ITEM1”,选自:真},{名称: “ITEM2”,选自:假},{名称: “项目3”,选自:假},{名称: “ITEM4”,选自:真}]
然后,它只会观察第1项和第2项。如果对这些项目进行了任何更改,则会触发它。