如何在更改属性时更新Angular $ watchCollection

时间:2017-01-03 21:46:39

标签: angularjs

我在父控制器中更新对象数组的属性时遇到了一些问题。

$ scope.items包含一个对象数组。

$scope.items = Ticket.items;

$scope.$watchCollection('items', function () {
   console.log("xxxx");
});

现在在另一个控制器子控制器中。我正在循环使用Ticket.items(顺便说一句,Ticket是一个具有属性名称项目的服务,是一个objet数组)

Ticket.items.forEach(function (item) {
  item.qty = 55;
});

现在问题是我正在更新Ticket.items的item属性而$ watchCollection没有执行。它仅在我向Ticket.items数组推送内容时执行。

1 个答案:

答案 0 :(得分:1)

只需在手表中添加参数true,即可追踪深层属性

$scope.$watch('items', function () {
   console.log("xxxx");
},true);