【发布时间】:2013-12-11 13:36:43
【问题描述】:
我有一个控制器,它的作用域上有一个对象:$scope.objToTrack。
我有一个位于嵌套视图中的指令,该指令 $watches 以查看对该对象的更改。
它具有隔离作用域,但将objToTrack 设置为= 以便可以观看。
当我单击该指令时,它会调用一个表达式,该表达式是控制器上更改objToTrack 的方法。
这是一个 plunker 来说明我的设置。
问题是objToTrack $watch 回调没有被触发,尽管对象被改变了。
如果在 Test1 和 Test2 状态之间切换,对 objToTrack 所做的更改是可见的。只是我不明白为什么它不能在点击时立即起作用。
谢谢。
【问题讨论】:
-
指令范围在演示中未设置为
=。也很好奇为什么不使用ng-click而不是自己的事件处理程序。每当您使用外部事件处理程序更改范围或角度不知道更改时,都必须使用$apply -
代码 sn-p 是一个演示,real 指令的作用远不止这些。
标签: angularjs angular-ui-router