如何在初始化时重置 AngularJs 过滤器

How to reset an AngularJs filter on init

我创建了一个按月过滤数据的有效过滤器。

点击月份名称会显示正确的数据。我想知道如何在页面加载 时显示所有数据。实际上,在页面加载时 没有显示任何数据,直到我每月单击 select。

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 >

我该怎么办?

如果 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 或其他一些值,则检查它。