1

如何過濾ng-repeat以顯示某個列字段爲空字符串的所有項目?當我嘗試這個時,它似乎總是給出完整的列表。我只希望看到的人ID爲1如何篩選空字符串值的ng-repeat列表?

Fiddlejs example

控制器:

var people = [{ 
       name: '', 
       age: 32, 
       id: 1 
      }, { 
       name: 'Jonny', 
       age: 34, 
       id: 2 
      }, { 
       name: 'Blake', 
       age: 28, 
       id: 3 
      }, { 
       name: 'David', 
       age: 35, 
       id: 4 
      }]; 

$scope.filteredPeople = $filter('filter')(people, { 
    name: '' 
}); 

$scope.people = people.slice(0); 

查看:

<li ng-repeat="p in filteredPeople"> 
    <h4>{{p.name}} ({{p.age}}) id: {{p.id}}</h4> 
</li> 

回答

2

您可以使用角的'filter''ng-repeat'

// In template: 
<li ng-repeat="p in filteredPeople | filter : filterPeople"> 
    <h4>{{p.name}} ({{p.age}}) id: {{p.id}}</h4> 
</li> 

// In controller: 
$scope.filterPeople = function(item) { 
    return !item.name; 
}; 
1

要列出名稱的用戶:

<li ng-repeat="p in filteredPeople" ng-if="p.name !== ''"> 
    <h4>{{p.name}} ({{p.age}}) id: {{p.id}}</h4> 
</li> 

要只列出那些沒有名字的用戶:

<li ng-repeat="p in filteredPeople" ng-if="p.name === ''"> 
    <h4>{{p.name}} ({{p.age}}) id: {{p.id}}</h4> 
</li> 
0

只是傳遞第三個參數來篩選說true將執行嚴格的檢查

$scope.filteredPeople = $filter('filter')(people, { 
    name: '' 
}, true); 

Forked JSFiddle

+0

@Jim Peeters是否有幫助? –

相關問題