2016-10-17 31 views
3

對不起,基本問題,我想了解angular2流使用基本的例子。函數使用模板插值多次調用?

import { Component } from '@angular/core'; 

@Component({ 
    selector:'my-app', 
    template:'Test {{ getVal() }}' 
}) 

export class AppComponent{ 
    getVal():void{ 
     console.log("demo text") 
    } 
} 

運行此示例後,「控制檯文本」在控制檯中顯示4次​​,爲什麼如此?謝謝。

+0

每次發生變化檢測時,它會評估綁定,它是我的項目中的'getVal()' –

回答

4

不鼓勵在模板中綁定函數或方法,因爲每次運行更改檢測時都會調用這些函數。

您應該至少緩存函數內的結果,以避免重複計算潛在的昂貴計算。

更好的方法是重新計算結果,當屬性更改結果取決於時,並將結果分配給屬性並從視圖綁定到此屬性。

+0

也construtor和其他方法調用4次。我試過ChangeDetectionStrategy,但它不工作。 – NunnaS

+1

對不起,但這還不夠。我建議你用Plunker理想地創建一個新問題來解決問題。 –