我有例如我在范围中描述的变量5,我做了围绕这个变量计算的范围,现在我必须显示这个变量并为这个变量设置css.class。我怎么能这样做?
我在code
fiddle
答案 0 :(得分:2)
创建一个函数,该函数根据值返回首选的css类:
$scope.getClass = function(n) {
/*example implementation*/
if (n == 5) {
return "red";
} else {
return "normal";
}
};
然后在ng-class属性中使用此函数:
<li ng-repeat="n in range(5,15)" ng-class="getClass(n)">test {{n}}</li>
更新:
使用您的建议我修改了我的解决方案。你可以像这样解决你的问题: 假设您在范围内设置了值:
$scope.myvalue = 5;
然后在内部范围函数中你必须添加你的值(它可以在最后):
$scope.range = function(min, max, step){
step = step || 1;
var input = [];
for (var i = min; i <= max; i += step) input.push(i);
input.push($scope.myvalue); //insert value that has to be highlighted
return input;
};
然后将数组传递给ng-repeat:
<li ng-repeat="n in range(0, 9, 3) | orderBy:identity" ng-class="{'red' : n == myvalue}">test {{n}}</li>
并将其添加到控制器(以便orderBy工作):
$scope.identity = angular.identity;
如果你在1.3.0-rc5之上使用AngularJS,你可以简单地使用(没有实体声明)(见related answer):
<li ng-repeat="n in range(0, 9, 3) | orderBy" ng-class="{'red' : n == myvalue}">test {{n}}</li>
在这种情况下,您不再需要 getClass()功能了 - 您只需将n与myvalue进行比较。