AngulaJS $监视变量,名称为

时间:2016-03-22 18:25:57

标签: javascript angularjs

由于没有进入这里的原因,我在$ scope上有一个名为placements[]的变量。与$scope.object['placements[]'] = { .. }中一样。我想观察这个变量,但似乎没有办法观察这样的变量,因为$watch采用了表达式。

没有任何关于如何在角度文档上处理这个问题,所以如果有人有一个很棒的提示或技巧。我目前的解决方法是$scope.$watch('object', function() {} , true),但这远不是一个完美的解决方案。

2 个答案:

答案 0 :(得分:1)

我是个笨蛋。显然,因为角度表达式是有效的javascript表达式,所以你可以这样做:

$scope.$watch("object['placements[]']", callback, true);

丑陋,但它有效

答案 1 :(得分:-1)

$scope.$watch可以使用函数或字符串。在这种情况下,传递返回对象的函数是有意义的

$scope.$watch(function() { return $scope['placements[]']; }, function(value) { ... });

这假设你的范围对象如下:

{
    'placements[]': {...}
}