2016-08-03 62 views
0

在我的service.js中,我包含了一個需要調用函數的過濾器。但是,上述函數聲明在我的過濾器聲明下方(仍在我的service.js中)。下面是我的過濾器的一個片段:Angularjs:從我的過濾器中調用服務方法

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另一個函數,我在我的過濾器內部使用的功能。但是,這不起作用。是否有可能從我的服務中的過濾器調用一個方法?如果是這樣,我怎樣才能引用被調用的方法? 謝謝!

回答

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; 
     }) 
    } 
}); 
+0

酷!它爲我工作。萬分感謝! – Erbeyn

+0

編輯:我實際上包括的是 '.filter(「getCode」,['InquiryService',function(InquiryService){' 並且它現在工作正常。 – Erbeyn