在我的角度4项目中,我有一个这样的模型:
export class DepositReceipt{
euro1: number;
euro2: number;
euro5: number;
euro10: number;
euro20: number;
euro50: number;
euro100: number;
euro200: number;
euro500: number;
totalAmount: number;
}
属性totalAmount实际上是其他属性的总和,是否可以在模型中定义类似:totalAmount = euro500 + euro200 +...
或者,如果不可能,我怎样才能使它有效?
当我收到服务器的回复时,我希望这个字段会自动计算,因为它是其他字段的总和。
答案 0 :(得分:0)
只需定义一个getter:
export class DepositReceipt{
euro1: number;
euro2: number;
euro5: number;
euro10: number;
euro20: number;
euro50: number;
euro100: number;
euro200: number;
euro500: number;
get totalAmount() { return this.euro1 + this.euro2 + ... };
}
然后您可以访问deposit.totalAmount
,就像它只是一个普通的属性一样,您不能将其称为函数。 (这可能是明显的,但是从你的评论我不确定你是否意识到这一点。)
答案 1 :(得分:0)
您可以使用简单的get函数,而不是将totalAmount声明为变量,您可以将其定义为:
get totalAmount() { return euro1 + euro2+ ...; }
答案 2 :(得分:0)
这是不可能的。你最好的选择可能是编写一个getter并且可以缓存这个值。
_totalAmount: number;
get totalAmount(): number {
if (this._totalAmount == undefined) {
this._totalAmount = calculateTotalAmount();
}
return this._totalAmount;
}
无论何时使用该属性,都会调用getter:
receipt.totalAmount // uses the getter automatically