无法让过滤器在 AngularJS 中执行

Cannot get filter to execute in AngularJS

我有一个 ng-repeat 事件,每个事件都有一个日期。我想让用户过滤掉不在两个日期之间的所有事件。我想我会为此制作一个自定义过滤器。

我正在使用 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 或 return a 上设置断点时,它永远不会到达。我想这样做,这样我就可以看到此时的上下文,然后编写过滤器。我知道它到达过滤器,因为当我在 filters.filter 上设置断点时,它确实到达了它。为什么不进入函数执行什么?

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

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

:)

ng-repeat 值应该类似于

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

使用过滤器时,您需要提供过滤器名称,如果您有过滤器参数,您可以选择在后面跟一个冒号,然后是表达式。