事实是,如果你使用ng-if="truthyValue"
and data-ng-if="truthyValue"
里面一个html元素使用角JS+1.6,受影响的元素不会在DOM。即使您使用,这也是如此ng-if
and data-ng-if
与boolean true
.
有谁知道为什么会发生这种情况?
这个答案多次引用 AngularJS 的内容指令文件 https://docs.angularjs.org/guide/directive.
原因是 AngularJS HTML 模板是compiled:
对于 AngularJS,“编译”意味着将指令附加到 HTML 以使其具有交互性。
在编译期间,模板指令会经历一个称为正常化其中涉及将 HTML 不区分大小写的名称更改为 AngularJS 中使用的驼峰命名法,这遵循以下过程:
- Strip
x-
and data-
从元素/属性的前面。
- 转换
:
, -
, or _
- 分隔名称为驼峰命名法。
完成此过程后,您可以看到您将拥有two ngIf
附加到同一个 HTML 元素的指令,这些指令会干扰(它适用于两次出现的原因)ng-if
但不是ng-if
and an data-ng-if
是您的网络浏览器丢弃了其中一项ng-if
如果有两个而不是它们都到达 AngularJS 编译器)。
因此,避免这种情况发生的解决方案是不要在 HTML 中使用多个指令,AngularJS 会将这些指令标准化为相同的内容.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)