Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Arrays AngularJS从ng repeat中删除空值_Arrays_Angularjs - Fatal编程技术网

Arrays AngularJS从ng repeat中删除空值

Arrays AngularJS从ng repeat中删除空值,arrays,angularjs,Arrays,Angularjs,我目前正在开发一个AngularJS web应用程序 我正在努力实现的目标: 使用ng repeat方法列出每个项并删除任何空值 正确-一、二、三、四 不正确-一、二、三、四、空(空ng重复项) 当前问题: 我已经尝试了几种方法来实现这一点,包括使用ng hide函数和创建数组过滤器,但我似乎都无法正常工作 任何帮助/建议都会有帮助 阵列 [ "One", "Two", "Three", "Four", null ] HTML: <md-list> <md-list

我目前正在开发一个AngularJS web应用程序

我正在努力实现的目标:
使用ng repeat方法列出每个项并删除任何空值

正确-一、二、三、四
不正确-一、二、三、四、空(空ng重复项)

当前问题:
我已经尝试了几种方法来实现这一点,包括使用ng hide函数和创建数组过滤器,但我似乎都无法正常工作

任何帮助/建议都会有帮助

阵列

[ "One", "Two", "Three", "Four", null ] 
HTML:

<md-list>
    <md-list-item class="md-3-line" ng-repeat="item in parseQ4P2 track by $index">
        <div class="md-list-item-text">
            <p>{{item}}</p>
        </div>
        <md-divider ng-if="!$last"></md-divider>
    </md-list-item>
</md-list>
dashApp.filter('removeBlackItems', function() {
  return function(inputArray) {
    var outArray = [];
    for (var i = 0; i < inputArray.length; i++) {
      if(inputArray[i].length !== 0){
        outArray.push(inputArray[i]);
      }
    }
    return outArray;
  };
});
.filter('emptyFilter', function() {
  return function(array) {
    var filteredArray = [];
      angular.forEach(array, function(item) {
        if (item) filteredArray.push(item);
      });
    return filteredArray;  
  };
}    

{{item}}

筛选失败:

<md-list>
    <md-list-item class="md-3-line" ng-repeat="item in parseQ4P2 track by $index">
        <div class="md-list-item-text">
            <p>{{item}}</p>
        </div>
        <md-divider ng-if="!$last"></md-divider>
    </md-list-item>
</md-list>
dashApp.filter('removeBlackItems', function() {
  return function(inputArray) {
    var outArray = [];
    for (var i = 0; i < inputArray.length; i++) {
      if(inputArray[i].length !== 0){
        outArray.push(inputArray[i]);
      }
    }
    return outArray;
  };
});
.filter('emptyFilter', function() {
  return function(array) {
    var filteredArray = [];
      angular.forEach(array, function(item) {
        if (item) filteredArray.push(item);
      });
    return filteredArray;  
  };
}    
dashApp.filter('removeBlackItems',函数(){
返回函数(输入阵列){
var outArray=[];
for(变量i=0;i
您可以在ng repeat中过滤数据。
尝试以下内容:

HTML:

.filter('emptyFilter', function() {
  return function(array) {
    var filteredArray = [];
      angular.forEach(array, function(item) {
        if (item) filteredArray.push(item);
      });
    return filteredArray;  
  };
}
控制器JS:

<md-list>
    <md-list-item class="md-3-line" ng-repeat="item in parseQ4P2 track by $index">
        <div class="md-list-item-text">
            <p>{{item}}</p>
        </div>
        <md-divider ng-if="!$last"></md-divider>
    </md-list-item>
</md-list>
dashApp.filter('removeBlackItems', function() {
  return function(inputArray) {
    var outArray = [];
    for (var i = 0; i < inputArray.length; i++) {
      if(inputArray[i].length !== 0){
        outArray.push(inputArray[i]);
      }
    }
    return outArray;
  };
});
.filter('emptyFilter', function() {
  return function(array) {
    var filteredArray = [];
      angular.forEach(array, function(item) {
        if (item) filteredArray.push(item);
      });
    return filteredArray;  
  };
}    
一个WSER URL-

如中所示,不需要自定义过滤器。Ese angular的现有过滤器功能,用于从模板/视图中的数组中删除空对象

<ul ng-repeat="item in items| filter:{item:'!'} track by $index">
    <li>{{item.name}}</li>
</ul>
  • {{item.name}

为什么您的筛选器失败?你能给我一个到JSFIDLE的链接吗?可能是因为我使用的是Angular 1.4.4吗?我已经把这个项目上传到Git了-