Ata*_*v32 19 javascript angularjs angularjs-scope
在Angular中有两种方法可以观察一组变量.但它们之间的区别是什么?
他们似乎都做浅表.是否存在一个明显优于另一个的情况?
Dan*_*try 30
$watchCollection将浅显示单个对象上的属性,并在其中一个对象发生更改时通知您.
$watchGroup 然而,观看一组个人手表表达.
它们在功能上并不相同.$watchGroup当您想要观看应该响应同一回调的众多表达式时,可以使用这些表达式 - 这些表达式可以是针对不同对象的单个表达式.这可用于观看'foo','foo.bar'和'baz.qux'.这是3个不同的目标- foo,foo的bar财产和baz的qux财产,但他们都将委托给同一个处理程序.
相比之下,$watchCollection只会浅看单个物体.这使得对象可能会更好地改变它的属性(例如 - 我们自己的$scope).在与我们的垃圾实例名称保持一致,以实现与上面相同,你只会想观看foo和baz,但你会被通知的任何改变foo和baz(而不是仅仅被通知上的变化foo本身,foo.bar和baz.qux.
Han*_*pio 12
以下是您使用每一个的示例.
$scope.data = ['Abc', 'Bcd', 'Cde', 'Def'];
$scope.$watchCollection('data', function(){...});
// responds to changes within $scope.data
// The following line will trigger the watch function:
$scope.data[0] = 'FOO';
Run Code Online (Sandbox Code Playgroud)
-
$scope.data = ['Abc', 'Bcd', 'Cde', 'Def'];
$scope.$watchGroup('data', function(){...});
// responds to changes on the properties (or functions, etc.)
// Any angular expression can be used in $scope.data
// The following line will trigger the watch function:
$scope.Abc = 'FOO';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16411 次 |
| 最近记录: |