【问题标题】:How to reset an AngularJs filter on init如何在初始化时重置 AngularJs 过滤器
【发布时间】:2015-03-25 21:24:53
【问题描述】:

我创建了一个按月过滤数据的工作过滤器。

单击月份名称会显示正确的数据。我想知道如何在页面加载时显示所有数据。实际上,在我点击选择月份之前,页面加载时不会显示任何数据

PlasmaCrm.filter('triParMois', function() {
  return function( items, mois ) {
    var filtered = [];
    angular.forEach(items, function(item) {
      if(item.created_at.substring(5, 7) == mois) {
        filtered.push(item);
      }
    });
    return filtered;
  };
});

我在那里使用这个过滤器:

<tr ng-repeat="finance in finances | triParMois:leMois">

然后我像这样点击 motn 名称来设置 leMois 的值

<button ng-click="leMois = 01 ">Janvier</button >

我该怎么办?

【问题讨论】:

    标签: angularjs angularjs-ng-repeat angularjs-filter


    【解决方案1】:

    如果 leMois 在开始时未定义,您可以这样做:

    PlasmaCrm.filter('triParMois', function() {
      return function( items, mois ) {
        var filtered = [];
        angular.forEach(items, function(item) {
          if(item.created_at.substring(5, 7) == mois || angular.isUndefined(mois)) {
            filtered.push(item);
          }
        });
        return filtered;
      };
    });
    

    如果它是 null 或其他值,请检查它。

    【讨论】:

    • 谢谢!这就是我一直在寻找的。​​span>
    猜你喜欢
    • 2013-10-03
    • 2016-06-14
    • 2017-04-22
    • 2015-10-28
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2017-08-19
    相关资源
    最近更新 更多