.filter('statusFilter', function() {
return function(listings) {
var filtered = [];
var arr = [];
angular.forEach(listings, function(listing) {
if(listing.status != 0){
filtered.push(listing);
}
});
return filtered;
};
})
上面的过滤器工作正常,以便在ng-repeat表的每一行的下拉列表中从选择中删除状态为零的条目。
然而,我的老板已经说过,如果他们是当前的默认选择,他需要保留零状态的条目。使用上面的过滤器,对于状态为零的条目,默认选择为空。
这是ng-repeat:
ng-repeat="task in tasksCtrl.tasks"
以下是包含ng-options的ng-repeat表格单元格:
<td level="{{tasksCtrl.level}}" check-permissions="onlyAdmin">
<select name="selValidator-{{ task.id }}"
class="full-width select-width-tasks"
ng-options="item.id_user as item.name for item in tasksCtrl.validators | statusFilter"
ng-model="task.validator_id"
</select>
</td>
我还需要添加list.status为零的过滤器列表,但是list.id_user等于task.validator_id
我相信我需要添加task.validator_id作为参数来传递函数。我虽然在挣扎!
非常感谢任何帮助。
答案 0 :(得分:0)
<强>解强>
.filter('statusFilter', function() {
return function(listings, id) {
var filtered = [];
angular.forEach(listings, function(listing) {
//console.log([id, listing.id_user, listing.name, id == listing.id_user]);
if(listing.status != 0 || id == listing.id_user){
filtered.push(listing);
}
});
return filtered;
};
})
NG-选项:
ng-options="item.id_user as item.name for item in tasksCtrl.validators | statusFilter:task.validator_id"