2016-12-01 37 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