AngularJS过滤器功能说明

时间:2013-07-28 15:46:17

标签: javascript angularjs

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

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

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

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

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

我正在努力了解这里发生了什么,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:3)

我们可以用另一种方式做到这一点!但这就是标准化的框架。 以相同的方式查看它的工作定义。

但是,如果仔细查看文档,它会说.filter函数和其他类似函数应该提供程序而不是。这有助于:

  1. 懒惰或不实例化。
  2. DI和所有DI优势,它允许您定义基于每个过滤器的依赖性。
  3. 检查完整的小提琴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);
            }
        });