我们有一个名称包含点(。)的属性。我知道这种情况并不常见,但原因是它们是自动构建的,您可能会将其视为key1.key2。
现在,此属性“key1.key2”上的watchCollection失败,因为它被解释为对象key1的属性key2。 Angular watchCollection的第一个参数必须是一个表达式。我们也试过了:
$scope.$watchCollection ('["key1.key2"]', ...);
但它不起作用
答案 0 :(得分:3)
您可以使用
$scope.$watchCollection ('this["key1.key2"]', ...);
答案 1 :(得分:2)
如果集合定义如下:
$scope['key1.key2'] = {
a: 1,
b: 2,
c: 3
};
然后
$scope.$watchCollection(function() {
return $scope['key1.key2'];
}, function(newCollection) {
console.log(newCollection);
});
查看{em> obj 参数的{em>详细信息 $watchCollection。它可以是字符串或函数