作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 angularjs
ng-class
directive
使用 ng-if
添加类,并且我使用另一个module 指令用这个类名对这个元素做一些事情,但在运行时它不起作用指令无法找到具有这个类名的元素,当我硬编码它的类名时,它的工作,但从 ng-class 注入(inject)的类名不起作用。
<!-- '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'
最佳答案
我猜 directive
调用的 ng-class
有问题。此外,class
类型的指令使用较少,因为总是可以实现与 attribute
和 element
相同的效果。
我创建了一个demo ,如何使用 ng-if
调用 attribute
类型和 class
的 directive
来实现相同的效果:
- Using it as Attribute
<div ng-repeat="item in data">
<div>
{{item.name}}
<span ng-if="item.isTrue" myclass></span>
</div>
</div>
- Using it as Class
<div ng-repeat="item in data">
<div>
{{item.name}}
<span ng-if="item.isTrue" class="myclass">
</span>
</div>
</div>
两者的 JS 共同点如下:
$scope.data = [{
'id': 0,
'name': 'Name 1',
'isTrue': false
}, {
'id': 1,
'name': 'Name 2',
'isTrue': true
}, {
'id': 2,
'name': 'Name 3',
'isTrue': true
}, {
'id': 3,
'name': 'Name 4',
'isTrue': false
}];
关于javascript - 无法从指令中选择 ngClass 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38760233/
我是一名优秀的程序员,十分优秀!