2016-08-03 10 views
0

私のservice.jsの中には、関数を呼び出す必要のあるフィルタが含まれていました。しかし、この関数は私のフィルタ宣言のすぐ下に宣言されています(まだ私のservice.js内にあります)。以下は私のフィルタの抜粋です:私のfunction InquiryServiceインサイド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; 
     }) 
    } 
}); 

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