4

这是我添加到 AngularJS 的过滤器:

angular.module('myApp', [])
  .filter('clean', function(){
    return function(input){
      return input;
    };
  })

有人可以像我五岁那样解释,为什么需要额外的匿名函数才能返回数据?

基本上为什么这不起作用:

angular.module('myApp', [])
      .filter('clean', function(input){
         return input;
      })

我试图更好地了解这里发生了什么,所以任何帮助将不胜感激。

4

1 回答 1

3

我们会他们可以用另一种方式来做!但这就是框架的意义所在,即标准化。查看它以相同方式工作的服务定义。

但是,如果您仔细查看文档,它会说.filter功能和其他类似功能应该获取提供者而不是。这有助于:

  1. 懒惰或不实例化。
  2. DI 和所有 DI 好处,它允许您基于每个过滤器定义依赖关系。

检查完整的小提琴http://jsfiddle.net/vAHbr/4/

angular.module('myApp', [])
.filter('discountcurrency', 
        // The provider, where we can encapsulate our filter 
        // creation code, without having to do JavaScript ninja 
        // stuff. As well as this is our chance to ask for 
        // dependencies.
        function ($filter) {
        var currency = $filter('currency');            

        // The actual simple filter function.
        return function (value) {
            return currency(value - 5);
        }
    });
于 2013-07-28T15:54:02.643 回答