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