如何过滤空字符串值的 ng-repeat 列表?
How to filter ng-repeat list on empty string values?
如何过滤 ng-repeat 以显示特定列字段为空字符串的所有项目?当我尝试这个时,它似乎总是给出完整的列表。我只想见id为1的人
控制器:
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>
列出具有姓名的用户:
<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>
只需将第三个参数传递给过滤器 saying true
将执行严格检查
$scope.filteredPeople = $filter('filter')(people, {
name: ''
}, true);
您可以在 'ng-repeat'
中使用 Angular 的 'filter'
:
// 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;
};
如何过滤 ng-repeat 以显示特定列字段为空字符串的所有项目?当我尝试这个时,它似乎总是给出完整的列表。我只想见id为1的人
控制器:
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>
列出具有姓名的用户:
<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>
只需将第三个参数传递给过滤器 saying true
将执行严格检查
$scope.filteredPeople = $filter('filter')(people, {
name: ''
}, true);
您可以在 'ng-repeat'
中使用 Angular 的 'filter'
:
// 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;
};