Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何筛选空字符串值上的ng重复列表?_Javascript_Angularjs_Angularjs Ng Repeat_Angular Filters - Fatal编程技术网

Javascript 如何筛选空字符串值上的ng重复列表?

Javascript 如何筛选空字符串值上的ng重复列表?,javascript,angularjs,angularjs-ng-repeat,angular-filters,Javascript,Angularjs,Angularjs Ng Repeat,Angular Filters,如何筛选ng重复以显示某个columnfield为空字符串的所有项目?当我尝试这个时,它似乎总是给出完整的列表。我只想见id为1的人 控制器: var people = [{ name: '', age: 32, id: 1 }, { name: 'Jonny', age: 34,

如何筛选ng重复以显示某个columnfield为空字符串的所有项目?当我尝试这个时,它似乎总是给出完整的列表。我只想见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>
  • {{p.name}({p.age})id:{{p.id}

  • 要列出具有以下名称的用户:

    <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>
    
  • {{p.name}({p.age})id:{{p.id}
  • 要仅列出没有名称的用户,请执行以下操作:

    <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>
    
  • {{p.name}({p.age})id:{{p.id}

  • 只需将第三个参数传递给过滤器,即
    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;
    };
    
    //在模板中:
    
  • {{p.name}({p.age})id:{{p.id}
  • //在控制器中: $scope.filterPeople=函数(项){ return!item.name; };
    @Jim Peeters这有帮助吗??