Yog*_*gaj 34 javascript events listener watch angularjs
我希望在父作用域中发生状态更改时在指令内执行函数.
实现这一目标的显而易见的方法是使用事件广播($ broadcast)和监听器($ on).
我很好奇,如果使用$ watch是事件广播的替代方案.如果是的话,两者如何比较?
据我所知,每个$ digest周期都会评估要监视的表达式.活动比手表更有效吗?
Fer*_*ler 32
该$watch函数用于监视范围上的变量.范围继承允许您也可以查看父范围变量,因此这绝对是您使用案例的方法.正如您所说,$on用于监视事件,您可以$broadcast查看子范围或$emit父范围.这为您提供了更多的控制,但是在编码时可能会导致更多的错误,因为您可以从您不监视并忘记通知侦听器的点获取范围变量的更新.
如果不继承范围变量,仍可以使用事件.但要注意不要污染大范围,使用服务可能是一种选择,因为你会立即看到它是否被注入.
由于指令获取它所在的范围(或从它继承),我认为这$watch是一个更清洁的选择.
如果要在指令上使用隔离范围,可以将参数作为属性传递$observe给它们.
| 归档时间: |
|
| 查看次数: |
18951 次 |
| 最近记录: |