【问题标题】:Getters/Setters for properties of objects?对象属性的获取器/设置器?
【发布时间】:2012-12-29 01:46:12
【问题描述】:

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

【问题讨论】:

    标签: javascript variables typescript getter-setter


    【解决方案1】:

    创建一个在您的对象状态更改时触发的事件系统。不允许直接访问属性。通过一个根据需要触发状态更改的控制器来汇集所有活动。

    或者考虑使用已经这样做的框架。 Backbone、Knockout、Angularjs 等。

    【讨论】:

    • 感谢 Knockout 和 AngularJS 的链接,我想这就是我要走的路。
    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多