2013-01-15 60 views
1

在Typescript中,我將如何使用getter/setter來處理對象的所有屬性?例如,我可以有以下代碼:對象屬性的Getters/Setters?

class Div { 
    private _container: HTMLDivElement; 
    public get container() { 
     return this._container; 
    } 
    public set container(value) { 
     alert("Updated!"); 
     this._container = value; 
    } 

    testDiv() { 
     this.container = <HTMLDivElement>document.createElement('div'); 
     this.container.style.width = "100px"; 
    } 
} 
var newDiv: Div = new Div(); 
newDiv.testDiv(); 

「已更新!」只會提醒一次 - 當div第一次設置時(我猜這應該是),但我希望它提醒「已更新!」即使我在該對象上設置屬性。有沒有辦法做到這一點,或者我應該想出一些解決方法?

回答

0

創建一個事件系統,當您的對象狀態發生變化時觸發。不要直接訪問屬性。通過控制器漏斗所有活動,根據需要觸發狀態更改。

或者使用已經這樣做的框架進行研究。 Backbone,Knockout,Angularjs等。

+0

感謝Knockout和AngularJS的鏈接,我認爲這就是我要走的路線。 – MatthewSot