Javascript addClass不';当元素在类属性中有插值运算符时,此选项不起作用
我试图在angular.jsJavascript addClass不';当元素在类属性中有插值运算符时,此选项不起作用,javascript,angularjs,Javascript,Angularjs,我试图在angular.jslink函数中使用addClass函数,我想我发现了一个bug 问题: 如果我在模板的class属性中有一个插值运算符({{}),那么addClass将自动失败,并且不会添加新类 比如说- 考虑到这一链接功能: angular.module('myApp', []).directive('afterRepeat', function() { return { link: function(scope,element, attr
link
函数中使用addClass函数,我想我发现了一个bug
问题:
如果我在模板的class
属性中有一个插值运算符({{}
),那么addClass
将自动失败,并且不会添加新类
比如说-
考虑到这一链接功能:
angular.module('myApp', []).directive('afterRepeat', function() {
return {
link: function(scope,element, attrs){
if (scope.$index%2==0){
element.addClass("special");
}
}
}
});
此模板可以正常工作并正确添加类
<div class="item" ng-repeat="item in items" after-repeat>item {{$index}}</div>
项{{$index}
此模板不可用
<div class="item{{$index}}" ng-repeat="item in items" after-repeat>item {{$index}}</div>
项{{$index}
这里有一个
我认为这是因为属性值是在link函数之后计算的——但这对我来说没有意义。链接功能不应该是链中的最后一步吗
有人知道如何克服这一问题吗?有两种选择:
a) 在作用域上有一个方法,该方法将返回适当的类名
$scope.getClass=函数(索引){
var klass='项目'+索引;
如果(索引%2==0){
klass+=‘特殊’;
}
返回克拉斯;
};
项目{{$index}
b) 使用ng类表达式:
<div
class="{{'item'+$index}}"
ng-class="{special: $index%2==0}"
ng-repeat="item in items"
>
item {{$index}}
</div>
项目{{$index}
<div
class="{{'item'+$index}}"
ng-class="{special: $index%2==0}"
ng-repeat="item in items"
>
item {{$index}}
</div>