使用Model类在Aggregation绑定中的可伸缩性

时间:2019-03-20 04:47:15

标签: angular typescript data-binding binding

我是Angular的新手,他找到了一种实用且模块化的方法来填充Class中的派生变量集。

export class Calculator {
    constructor(
        public x?: number,
        public y?: number,
        public total?: number,
    ) {
        this.total = this.x + this.y;
    }
}

我应该发生的是,Angular应该知道totalxy之间存在依赖关系。每当xy更新时,Angular应重新评估total

我知道这可以通过书写来完成,

this.calculator.total = this.calculator.x + this.calculator.y

在控制器的ngOnInit中或在onchange触发器中。但是,如果我有很多派生变量,它就不能扩展和模块化。的确,Class只是打字稿,它对Angular并不了解。您可以帮我替代一下吗?

1 个答案:

答案 0 :(得分:1)

如果总使用吸气剂效率不高 您可以将Calculator类更新为

export class Calculator {
    constructor(
        private _x?: number,
        private _y?: number,
        public total?: number,
    ) {
        this.total = this.x + this.y;
    }
    private update() {
        this.total = this.x + this.y;
    }
    set x(val) {
        this._x = val;
        this.update();
    }
    set y(val) {
        this._y = val;
        this.update();
    }
}

现在,只要对象内发生更改,您就可以重新计算多个属性。