2017-09-28 73 views
2

我希望能夠獲得另一個類的數組總數的實時更新。在Angular中,如何將類的變量設置爲函數的結果?

分離班有一個屬性CP,我希望陸軍班能夠從所有的分離隊獲得總和,並使任何創建自己的軍隊的任何東西都可以獲得。

export class Army { 
    cost: number; 
    CP: number; 
    name: string; 

    Detachments: Detachment[]; 

    constructor() { 
     this.cost = 0; 
     this.name = ""; 
     this.Detachments = []; 

     this.CP = this.getArmyCP(); 
    } 

    getArmyCP() { 
     let total = 0; 
     for(let i=0; i<this.Detachments.length; i++) { 
      total += this.Detachments[i].CP; 
     } 
     return total; 
    } 

} 

我可以看到通過直接訪問Army.getArmyCP()但有可能設置Army.CP參考訪問函數的值?

我已經能夠在AngularJS中做到這一點,但我對Angular和TypeScript還是比較陌生的,所以我不知道如何模擬這種行爲。

回答

4

你可以用getter這樣解決這個問題:

get CP(): number { return this.getArmyCP(); } 

所以從外面你可以使用它像一個正常的變量,它實際上將調用的getter:

let myArmyCP = army.CP; 
+1

啊,謝謝。這正是我正在尋找的。 我是否還需要在課程開始時聲明'CP:number',然後是getter,還是隻有getter才能訪問變量? – KilleR

+1

你不需要變量了。 getter訪問方法'getArmyCP()'並返回該值,就好像它是一個變量。 – rinukkusu

相關問題