Javascript AngularJs:我想从数组或列表中为ng repeat中的每个迭代添加一个类

Javascript AngularJs:我想从数组或列表中为ng repeat中的每个迭代添加一个类,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,如果我在作用域中有下一个数组 $scope.colors = [ "red", "blue", "yellow", "orange", "black", "purple" ]; 我用ng重复 <div ng-repeat="car in cars"> })) 我知道我可以使用$index创建类似于myclass1、myclass2、myclass3等的东西,但我更喜欢使用更具描述性的类名 谢谢如果您正确绑定了双向绑定属性,就可以

如果我在作用域中有下一个数组

$scope.colors = [
    "red",
    "blue",
    "yellow",
    "orange",
    "black",
    "purple"
];
我用ng重复

<div ng-repeat="car in cars">
}))


我知道我可以使用$index创建类似于myclass1、myclass2、myclass3等的东西,但我更喜欢使用更具描述性的类名


谢谢

如果您正确绑定了
双向
绑定属性,就可以让它正常工作。此外,您可能还可以对双向绑定属性重用指令属性名称本身,以避免再添加一个属性

尝试:

并将其用作:

<div ng-repeat="car in cars">
  <div class="test" ng-random-class="colors">{{car}}</div>
</div>

{{car}}

那么问题是什么?它应该很好用。你可能使用了
而不是
颜色
我检查了好几次,并复制粘贴了相同的代码,但无法使其正常工作。你可以准备一个plnkr演示吗?它在这里正常工作是的,PSL,你可以将其添加为答案,以便我可以将其标记为有效吗?谢谢,但在我的代码中没有工作,可能是因为我在另一个指令中有这个代码?。如果我只是
console.log(ngClasses)
我得到:
ReferenceError:ngClasses没有定义
<div class="test" ng-random-class ng-classes="classes"></div>
.directive("ngRandomClass", function () {
return {
    restrict: 'EA',
    replace: false,
    scope: {
        ngClasses: "=ngRandomClass"
    },
    link: function (scope, elem, attr) {            
       //Add random background class to selected element
        elem.addClass(scope.ngClasses[Math.floor(Math.random() * (scope.ngClasses.length))]);
    }
}});
<div ng-repeat="car in cars">
  <div class="test" ng-random-class="colors">{{car}}</div>
</div>