如何在init上重置AngularJs过滤器

时间:2015-03-25 13:13:27

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

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

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

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">

我设置了leMois的值,点击了这样的motn名称

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

我该怎么办?

1 个答案:

答案 0 :(得分: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或其他值则检查它。