Javascript 从ng repeat数组中筛选出具有空属性的对象

Javascript 从ng repeat数组中筛选出具有空属性的对象,javascript,angularjs,angular-filters,Javascript,Angularjs,Angular Filters,我的作用域中有此数组: $scope.randomArray = [ { prop1: 'val1', prop2: { value: '3', unit: 'l' } }, { prop1: 'val2' }, { prop1: 'val3', prop2: { value: '1

我的作用域中有此数组:

$scope.randomArray = [
      {
        prop1: 'val1',
        prop2: {
          value: '3',
          unit: 'l'
        }
      },
      {
        prop1: 'val2'
      },
      {
        prop1: 'val3',
        prop2: {
          value: '10',
          unit: 'l'
        }
      }
    ];
仅当对象具有
prop2
属性集时,才尝试通过此操作重复ng。如果没有必要,我不会为此创建单独的筛选器或作用域函数,因此我尝试了以下描述的解决方案:


{{random}}
但它不起作用


这是mcve:

我提出的一个解决方案是这样的。将ng if用于
random.prop2
。这适用于prop2不为null/未定义的情况。这是你的情况。对于任何其他筛选,您可以使用其他方法

<div ng-app="app">
<div ng-controller="appCtrl">

  <div ng-repeat="random in randomArray" ng-if="random.prop2">
  {{random}}
  </div>

  </div>
</div>

{{random}}

我想出的一个解决方案是:将ng if用于
random.prop2
。这适用于prop2不为null/未定义的情况。这是你的情况。对于任何其他筛选,您可以使用其他方法

<div ng-app="app">
<div ng-controller="appCtrl">

  <div ng-repeat="random in randomArray" ng-if="random.prop2">
  {{random}}
  </div>

  </div>
</div>

{{random}}
试试这个

var-app=angular.module('app',[])
.controller('appCtrl',['$scope',
职能($范围){
$scope.randomArray=[
{
建议1:‘val1’,
提案2:{
值:“3”,
单位:l
}
},
{
prop1:‘val2’
},
{
方案一:“val3”,
提案2:{
值:“10”,
单位:l
}
}
];
}]);
app.filter('check',function(){
返回函数(项目、标记名){
var筛选=[];
角度。每小时(项目、功能(el){
如果(el['prop2']!=未定义){
过滤推送(el);
}
});
返回过滤;
}
});

{{random}}
试试这个

var-app=angular.module('app',[])
.controller('appCtrl',['$scope',
职能($范围){
$scope.randomArray=[
{
建议1:‘val1’,
提案2:{
值:“3”,
单位:l
}
},
{
prop1:‘val2’
},
{
方案一:“val3”,
提案2:{
值:“10”,
单位:l
}
}
];
}]);
app.filter('check',function(){
返回函数(项目、标记名){
var筛选=[];
角度。每小时(项目、功能(el){
如果(el['prop2']!=未定义){
过滤推送(el);
}
});
返回过滤;
}
});

{{random}}

所有评论,它不适用于angular V1.3及以上版本。OP的qn是一个有效的答案。使用ng如果..所有的评论者,它不适用于angular V1.3及以上版本。OP的qn是一个有效的答案。如果..OP说他不需要另一个自定义筛选器,则使用ng。@JinsPeter OP没有说他不需要另一个自定义筛选器..
,但他说如果不需要
。请再读一遍!这是没有必要的。如果我认为使用
ng if
指令成本高昂,那么使用ng很容易实现。OP说他不需要另一个自定义过滤器。@JinsPeter OP没有说
他不需要另一个自定义过滤器。
但他说
if not needly
。请再读一遍!这是没有必要的。使用ng指令很容易实现,如果
指令成本高昂,我认为使用
ng指令很容易实现。