物体属性的吸气剂/定位器?

时间:2013-01-15 01:12:47

标签: javascript variables typescript getter-setter

在Typescript中,我如何为对象的所有属性使用getter / setter?例如,我可以使用以下代码:

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首次设置时(我猜,它应该是它应该是什么),但我希望它提醒“已更新!”即使我在该对象上设置属性。有没有办法做到这一点,还是我应该提出某种解决方法?

1 个答案:

答案 0 :(得分:0)

创建一个事件系统,在对象状态发生变化时触发。不允许直接访问属性。通过控制器对所有活动进行漏斗,根据需要触发状态更改。

或者考虑使用已经完成此操作的框架。 Backbone,Knockout,Angularjs等。