我的列表中有一些告警数据,我想根据某些条件对它们进行过滤,例如,如果在同一位置有多个pull_Alarm和emergency_alarm类型的告警,则优先考虑紧急告警。
Here is my list:
[
{
alarmType:"Normal_ALARM"
location:"Ward5"
severity:"URGENT"
},
{
alarmType:"Emergency_Alarm
location:"Ward1"
severity:"URGENT"
},
{
alarmType:"PULL_Alarm"
location:"Ward1"
severity:"NORMAL"
}
]筛选器后我想要的列表应该是
[
{
alarmType:"Normal_ALARM"
location:"Ward5"
severity:"URGENT"
},
{
alarmType:"Emergency_Alarm
location:"Ward1"
severity:"URGENT"
}
]有人能建议我如何在这些条件下应用过滤器。
发布于 2016-08-30 17:42:03
使用switch cases或add if else条件创建一个过滤器。
.filter("alarmFilter", function () {
// write condition what ever you want to add
});并将此筛选器应用于要应用条件的表达式。
发布于 2016-08-30 17:43:21
写入过滤器
$scope.filter1 = function(item)
{
return (item.severity == 'URGENT');
};然后使用它
<div ng-repeat="item in object| filter:filter1">{{item.alarmType}}</div>JSFIDDLE http://jsfiddle.net/Lvc0u55v/8866/
发布于 2016-08-30 17:45:36
您可以创建自定义过滤器,如下所示。
angular.module('myFilters', []).
filter('byAlarmCount', function() {
return function(alarms, severity) {
var items = {
severity: severity,
out = []
};
angular.forEach(alarms, function(v, k)) {
if (this.severity[v.severity] === true) {
this.out.push(v);
}
}
return items.out;
}
});DOM,如下所示
<ul>
<li ng-repeat="alarm in list | byAlarmCount:severityFilter">{{alarm.location}: {{alarm.alarmType}}</li>
</ul>https://stackoverflow.com/questions/39223851
复制相似问题