我正在使用angularjs
ng-class
directive
添加具有ng-if
的类,而我使用另一个模块指令来使用此类名称对此元素执行某些操作,但是在运行时它不工作指令找不到具有此类名的元素,当我硬编码其工作的类名时,但是从ng-class注入的类名不起作用。
<!-- 'A' not picking by directive -->
<div ng-class="{'myclass': item.isTrue}" ng-repeat="item in vm.list">...</div>
<-- 'B' working -->
<div class="myclass" ng-repeat="item in vm.list">...</div>
指令。
var tmp = $element[0].getElementsByClassName("myclass"); // not working with 'A' but fine with 'B'
答案 0 :(得分:0)
我猜ng-class
电话的directive
存在问题。此外,class
类型的指令使用频率较低,因为attribute
和element
的指令始终可以达到相同的效果。
我创建了一个demo,使用ng-if
我可以调用类型directive
和attribute
的{{1}}来实现同样的目标:
- 将其用作属性
醇>
class
- 将其用作 Class
醇>
<div ng-repeat="item in data">
<div>
{{item.name}}
<span ng-if="item.isTrue" myclass></span>
</div>
</div>
两者的 JS 很常见,如下所示:
<div ng-repeat="item in data">
<div>
{{item.name}}
<span ng-if="item.isTrue" class="myclass">
</span>
</div>
</div>