上次介绍了两种$watch的用法,今天在跟大家分享另外的几种用法。
$watch监听函数
将监听的参数部分换为函数。虽然监听的是函数,但实际上监听的是函数的返回值。
|
|


然后让我们看一下我们监听的部分,看看是不是我们的返回值:

$watchGroup(watchExpressions, listener)
$watchGroup是scope上的另一个函数,他是$watch的功能扩展。他可以监听一个数组中的多个元素,当其中的人一个发生改变时,都会被监听到。
|
|



$watchCollection(obj, listener)
$watchCollection也是scope上的一个函数,同样为$watch的扩展。他可以监听一个对象,当对象中的任一个属性发生改变额时候,都会被监听到。
obj部分同样可以是String或是function。
|
|


这个方法的功能跟使用$watch的第三个参数是一样的效果:当$watch的第三个参数为true的时候,就会实现这样的效果。
|
|
上一次我们已经提到过了,在这里使用true,表示新旧值将使用angular.equals来进行判等。在官方文档中有这么一句话:
Both objects or values are of the same type and
all of their propertiesare equal by comparing them with angular.equals.
可以看到,这里的判等需要每个属性都相等。
总结
灵活的使用$watch以及相关的方法,会使你的展现的功能富有趣味,富有灵活性。
官方参考:https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch