【问题标题】:AngularJS remove NULL from ng-repeatAngularJS 从 ng-repeat 中删除 NULL
【发布时间】:2015-08-14 11:50:01
【问题描述】:

我目前正在开发一个 AngularJS 网络应用程序。

我想要达到的目标:
使用 ng-repeat 方法列出每个项目并删除所有空值。

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

当前问题:
我已经尝试了几种方法来做到这一点,包括使用 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;
  };
});

【问题讨论】:

  • 为什么你的过滤器失败了?你能给我一个 JSFiddle 的链接吗?

标签: arrays angularjs


【解决方案1】:

您可以在 ng-repeat 中过滤数据。 试试这样的:http://jsbin.com/sufexe/edit?html,js,output

【讨论】:

【解决方案2】:

HTML:

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

控制器 JS:

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

Anwser URL - AngularJS remove empty value

【讨论】:

    【解决方案3】:

    ng-repeat filter null value not displaying 中所见,不需要自定义过滤器。 Ese angular 现有的过滤器功能可从模板/视图中的数组中删除空对象

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

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 2018-05-24
      • 2015-11-29
      • 2017-12-22
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2015-08-27
      相关资源
      最近更新 更多