$watch和$observe的使用
Posted 飞凡123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$watch和$observe的使用相关的知识,希望对你有一定的参考价值。
$observe 是Attribute对象的一个方法,用来监听DOM中属性值的变化。比如 attr1="{{name}}"
Attribute定义在directive中的link函数的第三个参数上。所以$observe只能用在directive中。
可以看到它的回调函数只有一个参数,就是新值。
.directive(‘myCustomer‘, function(){ return { link: function(scope, element, attrs) { attrs.$observe(‘attr1‘, function(newVal) { //.... }) } } })
总结如下:
$observe只能用在directive,$watch没有那么多限制,$watch是scope对象上的方法,所以可以用在控制器或者是directive的link方法中。
$observe只能用监听DOM属性值的变化,$watch可以监听表达式,表达式可以是一个函数或字符串。如果是字符串会使用$parse转换为函数。字符串表达式不能包含{{}}。
$observe的回调函数有newValue, $watch有oldValue和newValue
以上是关于$watch和$observe的使用的主要内容,如果未能解决你的问题,请参考以下文章
javascript Angular $ watch,$ watchCollection,$ attrs。$ observe
[RxJS] Implement RxJS `mergeMap` through inner Observables to Subscribe and Pass Values Through(代码片段
Fragment Recreation 导致 Observer 使用 Androidx Navigation 库触发 onChanged()