Angularjs:从我的过滤器中的服务调用方法

时间:2016-08-03 04:36:26

标签: angularjs

在我的service.js中,我包含了一个需要调用函数的过滤器。但是,所述函数声明在我的过滤器声明之下(仍在我的service.js中)。以下是我的过滤器片段:

angular
.module('app.inquiry')
.factory('InquiryService', InquiryService)
.filter("getCode", function(){
   return function(item) {
      searchProduct(item.name).then(function(result) {
        item.reference.local = result;
        return item.reference.local;
      })
   }
});

在我的function InquiryService内是另一个名为searchProduct的函数,我在我的过滤器中使用的函数。但是,这不起作用。是否可以从过滤器内的服务中调用方法?如果是这样,我该如何引用要调用的方法? 谢谢!

1 个答案:

答案 0 :(得分:0)

  

是否可以从过滤器内的服务中调用方法?

是的,是的。您应该在您的过滤器中注入您的factory,如下所示:

.filter("getCode", function(InquiryService) {

然后,您可以从factory调用此方法:

.filter("getCode", function(InquiryService) {
    return function(item) {
      InquiryService.searchProduct(item.name).then(function(result) {
        item.reference.local = result;
        return item.reference.local;
      })
    }
});