无法从指令中选择ngClass元素

时间:2016-08-04 06:44:48

标签: javascript angularjs directive ng-class

我正在使用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'

1 个答案:

答案 0 :(得分:0)

我猜ng-class电话的directive存在问题。此外,class类型的指令使用频率较低,因为attributeelement的指令始终可以达到相同的效果。

我创建了一个demo,使用ng-if我可以调用类型directiveattribute的{​​{1}}来实现同样的目标:

  
      
  1. 将其用作属性
  2.   
class
  
      
  1. 将其用作 Class
  2.   
<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>