无法在AngularJS中获取要执行的过滤器

时间:2015-03-12 17:36:46

标签: javascript angularjs date haml angular-filters

我有重复事件,每个事件都有一个日期。我想允许用户过滤掉两个日期之间的所有事件。我想我会为此制作一个自定义过滤器。

我正在使用HAML,所以这就是我的HTML外观:

%tr{'ng-repeat' => 'event in events | filter:dateRange | event.name'}

好的,现在我的过滤器现在看起来像这样:

filters.filter('dateRange', function() {
  return function(){
    var a = 'a';
    return a;
  };
});

显然我的过滤器还没有真正做任何事情,但是当我在var a或者返回a上设置断点时,它永远不会到达。我想这样做,所以我可以在这一点上看到上下文,然后编写过滤器。我知道它到达了过滤器,因为当我在filters.filter上设置断点时,它确实达到了它。为什么它不进入函数并执行任何操作?

2 个答案:

答案 0 :(得分:1)

ng-repeat值应该看起来像

%tr{'ng-repeat' => 'event in events | dateRange: event.name'}

使用过滤器时,您提供过滤器名称,如果您有过滤器参数,则可以选择冒号,然后是表达式。

答案 1 :(得分:0)

您必须将表示文本的变量作为参数传递。 例如:

myApp.filter('myfilter',function(){
    return function(txt){
      return txt = 'a'; 
   }
})

:)