2016-11-23 75 views
0

我让这个模板显示计算出来的东西。Angular2 rxjs数据异步

compute函数是getPredictedRate()。

<div class="ranking-list-container panel panel-default" *ngIf="isTasteGameRanking"> 
    <ul class="ranking-list list-group"> 
     <li class="ranking-element list-group-item row" *ngFor="let gameRate of gameRates | slice:0:10; let i = index;"> 
     <div class="index col-xs-1"> {{ i + 1 }} </div> 
     <div class="game-title col-xs-10"><a (click)="moveToGameDetailPage(gameRate.gr_title)" > {{ gameRate.gr_title }} </a></div> 
     <div class="game-rate col-xs-1" > {{ getPredictedRate(gamRate.gr_title) }} </div> 
     </li> 
    </ul> 
    </div> 

这是getPredictedRate()

如果我呼吁模板此功能。这个函数一遍又一遍地被调用。

我在这段代码中想念什么?请帮帮我。我无法入睡两天。由于这个问题...

+0

我觉得模板函数确实可以经常叫,尤其是角相信的东西可能已经改变。我通常喜欢做的是在一个单独的函数中计算值,将结果存储在一个变量中,然后让模板引用该变量的getter。这样你的模板只能做简单的检索,而你的计算只在必要时执行。 – Sjoerd

回答

0

模板重复评估表达式。一种解决方案可能是简单地将其更改为:

<div class="game-rate col-xs-1" >{{result}}</div> 
+0

你是我做一个私人变量? –

+0

和我有其他问题。我无法访问this.userService.getCompareUsersByTargetUserId()和this.predictedGameRateService.computePredictedGameRate()。为什么我不能到达他们 –

+0

是的,做一个组件变量。无法访问的变量在哪里定义? – Meir