2016-11-23 105 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