根据字符串数组更改li元素的颜色
Change color of li element based on array of strings
在我的视图中,我有一个状态列表。
<ul>
<li>FIRST_STATUS</li>
<li>SECOND_STATUS</li>
<li>THIRD_STATUS</li>
</ul>
在我的模型控制器中,我每秒检索更新的状态:
$interval(function () {
$scope.bad_statuses = Model.getStatuses({id: $scope.someModel.id});
}, 1000);
$scope.statuses
是坏状态的数组,因为example $scope.bad_statuses[0]
=FIRST_STATUS
。如果状态存在于$scope.bad_statuses
中,我想将其涂成红色,否则为绿色。
因此,基本上,我需要以某种方式检索每个<li>
值,并根据来自li的内容是否存在于$scope.bad_statuses
数组中的条件,将其涂成绿色或红色。
我应该如何处理这个问题?我是angularjs的新手。
我为你做了一个plunkr,这应该可以工作:)
https://plnkr.co/edit/OP66yUB5lxBS5uCmtbRh?p=preview
Javascript代码:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $interval) {
$scope.name = 'World';
$scope.bad_statuses = ["FIRST_STATUS", "THIRD_STATUS"];
$interval(function () {
var lis = document.getElementById("list").getElementsByTagName("li");
angular.forEach(lis, function(value, key){
if($scope.bad_statuses.indexOf(value.innerHTML) > -1){
console.log("red");
value.style.color = 'red';
}
else{
console.log("green");
value.style.color = 'green';
}
});
}, 1000);
});
<li ng-style="getColor(*status*)"></li>
控制器内:
$scope.getColor = function(status) {
return $scope.bad_statuses.indexOf(status) > -1 ? {color: 'red'} : {color: 'green'};
}
ng样式指令的文档。
相关文章:
- 完全可链接的li元素
- 使用li元素的html内容更改该元素的背景
- 需要在量角器中找到使用ng中继器的li元素的数量
- 根据输入值创建li元素
- 要更改变量的高度li元素
- 为li元素添加标题
- 在不使用sort()的情况下获取HTML LI元素的副本
- 将内容从 JSON 数组附加到 li 元素
- 获取 LI 元素的偏移宽度(或等效项)
- addClass 到当前 li 元素并删除类
- 使用纯JS点击即可从li元素中获取文本和id
- Rails-使用Ajax删除li元素
- 对具有相同类级别的不同li元素进行排序
- 显示/隐藏具有不同类的li元素
- 从ul中删除li元素
- 从OL中移除LI元素
- 删除不起作用的li元素
- 从javascript生成的li a元素触发onclick
- 如何使用json对象作为li元素的id属性或使用javascript锚定标记id
- 添加和删除jquery-li元素