Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Angularjs 角度过滤器不显示具有空属性的对象_Angularjs_Filter - Fatal编程技术网

Angularjs 角度过滤器不显示具有空属性的对象

Angularjs 角度过滤器不显示具有空属性的对象,angularjs,filter,Angularjs,Filter,我有一系列这样的运算符: [ { "id":1, "key":"55330", "name":"Macie", "operative_status":{ "id":20, "code":"100", "name_status":"viaje", "created_at":"2016-08-03T21:28:52Z" } }, {

我有一系列这样的运算符:

[  
   {  
      "id":1,
      "key":"55330",
      "name":"Macie",
      "operative_status":{  
         "id":20,
         "code":"100",
         "name_status":"viaje",
         "created_at":"2016-08-03T21:28:52Z"
      }
   },
   {  
      "id":2,
      "key":"8439",
      "name":"Darian",
      "operative_status":null
   },
   {  
      "id":3,
      "key":"49531",
      "name":"Kaelyn",
      "operative_status":null
   }
]
<div ng-repeat="operator in operators | filter: { operative_status : search && {name_status: search } || '!'}">
我想用
ng repeat
显示它们:

<div ng-repeat="operator in operators | filter:{ operative_status : {name_status: status}}">

如你所见,我想按状态筛选


问题在于,它不会显示操作状态为null的运算符。

对于您的数据,使用模式对象作为筛选表达式将不起作用,因为对于
操作状态
属性,值为
null
的项将永远不会匹配,这就是您所观察到的

您可以使用谓词函数代替筛选器表达式

例如:


$scope.filterByStatus=函数(值){
if($scope.status.length==0)返回true;
返回值.u状态&&
value.operative_status.name_status===$scope.status;
};

然后在过滤器表达式中使用它:


运算符中的运算符|筛选器:filterByStatus


对于您的数据,使用模式对象作为筛选表达式将不起作用,因为对于
操作状态
属性,值为
null
的项将永远不会匹配,这是您正在观察的

您可以使用谓词函数代替筛选器表达式

例如:


$scope.filterByStatus=函数(值){
if($scope.status.length==0)返回true;
返回值.u状态&&
value.operative_status.name_status===$scope.status;
};

然后在过滤器表达式中使用它:


运算符中的运算符|筛选器:filterByStatus


要过滤
null
值,必须执行以下操作:

[  
   {  
      "id":1,
      "key":"55330",
      "name":"Macie",
      "operative_status":{  
         "id":20,
         "code":"100",
         "name_status":"viaje",
         "created_at":"2016-08-03T21:28:52Z"
      }
   },
   {  
      "id":2,
      "key":"8439",
      "name":"Darian",
      "operative_status":null
   },
   {  
      "id":3,
      "key":"49531",
      "name":"Kaelyn",
      "operative_status":null
   }
]
<div ng-repeat="operator in operators | filter: { operative_status : search && {name_status: search } || '!'}">



要过滤
null
值,必须执行以下操作:

[  
   {  
      "id":1,
      "key":"55330",
      "name":"Macie",
      "operative_status":{  
         "id":20,
         "code":"100",
         "name_status":"viaje",
         "created_at":"2016-08-03T21:28:52Z"
      }
   },
   {  
      "id":2,
      "key":"8439",
      "name":"Darian",
      "operative_status":null
   },
   {  
      "id":3,
      "key":"49531",
      "name":"Kaelyn",
      "operative_status":null
   }
]
<div ng-repeat="operator in operators | filter: { operative_status : search && {name_status: search } || '!'}">



什么是
name\u status
?操作状态的属性什么是
name\u status
?操作状态的属性谢谢,如果($scope.status.length==0)返回true,如果我更改此行,则此操作有效;如果($scope.status==undefined)返回true,那么如果($scope.status.length==0)更改这一行,则此操作有效;如果($scope.status===undefined),则返回此选项。