我有一个名为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>
答案 0 :(得分: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;
});
答案 1 :(得分:1)
您需要为过滤器指定自定义函数。 这是一个有效的plnkr
代码:
<div ng-repeat="task in tasks | filter:status">
<h1>{{task.name}}</h1>
<p>{{task.status}}</p>
</div>
JS:
$scope.status = function(item) {
if (item.status == 'to-do' || item.status == 'in-progress') return true;
}