我试图在具有“ng-if”的图像上使用“ng-mouseover”指令,但它不起作用,但如果我使用“ng-show”指令它起作用,每个人都可以告诉我为什么吗?或者这是 AngularJS 的问题?
在 AngularJS 文档中,我无法阅读任何相关内容:https://docs.angularjs.org/api/ng/directive/ngMouseover https://docs.angularjs.org/api/ng/directive/ngMouseover
ng-show
<button ng-show="true" ng-mouseover="countOne = countOne + 1" ng-init="countOne=0">
Increment (when mouse is over)
</button>
Count: {{countOne}}
ng-if
<button ng-if="true" ng-mouseover="countTwo = countTwo + 1" ng-init="countTwo=0">
Increment (when mouse is over)
</button>
Count: {{countTwo}}
Fiddle: http://plnkr.co/edit/Wb6bjyJdHj5qoH7fxGFJ?p=info http://plnkr.co/edit/Wb6bjyJdHj5qoH7fxGFJ?p=info
您观察到的行为是由以下原因引起的ngIf
作品-从文档 https://docs.angularjs.org/api/ng/directive/ngIf
请注意,当使用 ng-if 删除元素时,其范围将被破坏
当元素恢复时,会创建一个新的作用域。范围
在 ngIf 中创建,使用原型从其父作用域继承
遗产。这的一个重要含义是如果使用 ngModel
在 ngIf 内绑定到父级中定义的 JavaScript 原语
范围。在这种情况下,对变量内的任何修改
子作用域将覆盖(隐藏)父作用域中的值。
这基本上意味着你需要使用$parent
如果你正在使用ng-if
。就像这样:
<button ng-if="true" ng-mouseover="$parent.countTwo = countTwo + 1" ng-init="$parent.countTwo=0">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)