Jaa*_*aap 2 javascript angularjs angular-ui-bootstrap
我正在为Angular使用UI引导程序,我已将ui.bootstrap.modal组件集成到我的解决方案中.除了一件事,一切都很好.我设置了$ scope.$ watch来监视位于模态后面的控制器上特定属性的更改,但是,当属性更改时它不会触发.
我在plunkr中复制了它
正如您所看到的,当模态打开时它会触发一次,但是当您更改UI中的复选框值时则不会触发.绑定看起来很好,因为更新一个复选框会更新另一个(两者都绑定到同一属性).
有任何想法吗?
谢谢!
Angular $ watch语句总是至少触发一次以设置绑定
在观察者注册观察者之后,异步调用侦听器fn(通过$ evalAsync)来初始化观察者.在极少数情况下,这是不合需要的,因为当watchExpression的结果没有改变时会调用监听器.要在侦听器fn中检测此场景,您可以比较newVal和oldVal.如果这两个值相同(===)则由于初始化而调用了监听器.
您正在收到有关设置的警报,但它似乎没有绑定任何内容,这就是为什么您再也没有看到它.
您所看到的是由于原型继承和原语而导致的Angular限制.如果您将其更改为$scope.form = {}; 并引用它,因为form.chkVariable它应该按预期工作.
http://plnkr.co/edit/3hCJ3EM1Gx1fCDSePQfa?p=preview