我需要一个指令,当三个作用域变量改变时,重新呈现HTML。前两个变量是整数,第三个变量是数组。
我们有$watchGroup
来监视几个变量,我们有$watch
,objectEquality
作为第三个参数,我们有$watchCollection
,它类似于$watch
,但隐含了objectEquality
。
有没有办法写出类似的$watch
?
$scope.$watchGroup(['number1', 'number2', 'myArray'], callback, true); // true for objectEquality
3条答案
按热度按时间2vuwiymt1#
看起来watchGroup并不支持深度观察,所以你可以做一个黑客,通过注册一个匿名的深度观察器,并从watch函数中传入数组值。
或者只是在rootScope上添加这个函数作为实用程序函数,并从任何继承的作用域访问它。
并从控制器执行以下操作:
ruyhziif2#
如果你想监视一个string表达式的数组(也就是说你不需要监视函数,
$watchGroup
和PSL的解决方案都可以处理),这里有一个替代方法:如果你想建立一个类似于PSL的效用函数:
lpwwtiir3#
我也遇到了和你一样的问题。
我对这个深层观察组问题的解决方案是:
我希望这对你有帮助!