AngulaJS$watch具有奇怪名称的变量
AngulaJS $watch variable with a weird name
出于这里不做的原因,我在$scope上有一个名为placements[]
的变量。就像$scope.object['placements[]'] = { .. }
一样.我想观察这个变量,但似乎没有办法观察这样的变量,因为$watch
需要一个表达式。
在角度文档中没有任何关于如何处理这个问题的信息,所以如果有人有提示或技巧,那就太好了。我目前的解决方法是$scope.$watch('object', function() {} , true)
,但这远非完美的解决方案。
我是个笨蛋。显然,由于角度表达式是有效的javascript表达式,因此您可以这样做:
$scope.$watch("object['placements[]']", callback, true);
丑陋如地狱,但它有效
$scope.$watch
可以接受函数或字符串。在这种情况下,传递一个返回要监视的对象的函数是有意义的
$scope.$watch(function() { return $scope['placements[]']; }, function(value) { ... });
这是假设您的范围对象如下所示:
{
'placements[]': {...}
}
相关文章:
- $scope变量发生更改时未触发Angular$watch
- $scope变量未定义,尽管它是在$watch函数内部设置的
- AngulaJS$watch具有奇怪名称的变量
- AngularJS:在没有$watch的情况下观察变量
- 在指令中使用 $scope.$watch 处理未定义变量的替代方法
- 当我将$scope分配给另一个变量并更改新变量上的监视值时,不会触发角度 $scope.$watch
- AngularJS $watch,等待变量声明触发
- $watch检查在作用域 AngularJS 中定义的变量
- angular$watch-can'当集合是相同的变量时,不要让手表开火
- $watch-方法不会更改scope变量
- $watch对angularjs中的工厂变量不起作用
- Angular的watch - update变量在函数作用域之外
- $watch不能在其他控制器的变量上工作
- 当$scope.$watch表达式依赖于多个变量
- 变量更改没有通知到' $scope.$watch '
- 将$watch设置为作用域变量会导致watch代码立即执行,如何避免
- 在angular 1.4.4中,为什么作用域变量的变化不需要$watch或$apply就能传播到DOM ?
- 在angular中,如何等待变量被定义,而不使用$scope $watch
- 在独立对象上使用Object.watch()变量
- 清除$watch函数中的作用域变量