2016-12-01 40 views
2

我想將鍵值轉換爲值(使用服務器調用從服務器獲取)。帶有http服務的Angular2管道

查看

<div> {{ 'SomeText1' | performtranslation }} </div> 
<div> {{ 'SomeText2' | performtranslation }} </div> 

管定義

transform(key: string): string { 
    //http server call 
    var updatedValue = http.get(key); //Just example 
    return updatedValue ; 
} 

因爲在這裏我們有兩個翻譯,呼叫服務器時作出兩次。同樣,如果有100個按鍵,則會有100個電話。我們如何限制和做一個電話。

回答

0

您可以使用緩存結果並在緩存中找到時立即將其返回的服務(單例),而不是調用服務器。另請參見What is the correct way to share the result of an Angular 2 Http network call in RxJs 5?

+0

我們可以第二次緩存它,但第一次加載時會進行100次調用。任何想法限制或優化它。 – user1853803

+0

我在鏈接問題中的回答應該完全避免這種情況。不確定其他人。 –

+0

那麼讓1調用返回一個數組呢? – soywod