1

У меня есть объект под названием tasks. Он имеет различные свойства. Теперь я хочу отображать только те задачи, которые имеют статус to-do и in-progress. Пожалуйста, помогите мне, как я могу применить фильтр в ng-repeat.фильтр с несколькими значениями одних и тех же свойств объекта

$scope.tasks = [ 
{ 
    'title': 'task one', 
    'status': 'to-do' 
}, 

{ 
    'title': 'task two', 
    'status': 'in-progress' 
}, 

{ 
    'title': 'task three', 
    'status': 'completed' 
} 

] 

<div ng-repeat="task in tasks"> 
    <h1>{{task.name}}</h1> 
    <p>{{task.status}}</p> 
</div> 

ответ

1

необходимо указать пользовательскую функцию фильтра. вот работает plnkr

код:

<div ng-repeat="task in tasks | filter:status"> 
    <h1>{{task.name}}</h1> 
    <p>{{task.status}}</p> 
</div> 

ЯШ:

$scope.status = function(item) { 
    if (item.status == 'to-do' || item.status == 'in-progress') return true; 
} 
2
<div ng-repeat="task in tasks | filter: filteredTasks"> 
    <h1>{{task.name}}</h1> 
    <p>{{task.status}}</p> 
</div> 

Создать фильтр:

$scope.filteredTasks = function(task) { 
    return (task.status === 'to-do' || task.status === 'in-progress') ? true: false; 
}); 
+0

Благодаря @Avijit. Меня устраивает. На самом деле я думал по-другому. Но это лучший способ. Счастливое кодирование :-) – Anudeep

Смежные вопросы