调用在自定义角度过滤器中声明的函数

时间:2017-10-25 10:39:35

标签: javascript angularjs

我正在尝试从我的过滤器模块调用声明的函数:

filterModule.filter({
    functionFilterOne: ['CustomService', functionIDOne],
    functionFilterTwo: ['CustomService', functionIDTwo],   
});

    function functionIDOne(id) {
      return function(id) {
       return id + "PREFIXOne";
      }
    }
    function functionIDTwo(id) {
      return function(id) {
       return id + "PREFIXTwo";
      }
    }

在html中:

{{  elet.id | functionFilterOne: functionIDOne}}

我想为包含许多过滤器的应用创建一个通用过滤器模块。

我不知道如何在我的HTML中正确调用它,任何想法。 我收到了错误:

  

angular.js:13283错误:[$ injector:unpr]未知提供商:   functionFilterOneProvider< - functionFilterOne< -

我按照Link for separate filterlink filter with many function

链接进行了操作

2 个答案:

答案 0 :(得分:1)

您尝试创建多个过滤器看起来与您链接的答案不同。

这就是创建过滤器的样子:

filterModule.filter('functionFilterOne', ['CustomService', functionIDOne])
            .filter('functionFilterTwo', ['CustomService', functionIDTwo]);

您还无法通过使用过滤器参数对其进行遮蔽来使用自定义服务。使用不同的参数名称:

function functionIDOne(customService) {
  return function(id) {
    return id + "PREFIXOne";
  }
}

答案 1 :(得分:1)

只是简单

AppModule.filter('addprifix', function () {
    return function (input)
    {
        return input + "PREFIXOne";
    }
});

ng-model="id|addprifix"

一样使用