在Angular 2中,建议在表达式中使用组件方法吗?例如,我有以下组件
export class AreaComponent {
totalLength: number;
totalBreadth: number;
totalheight: number;
mylocalVar: number;
totalSqft: number;
myMethod(): number {
let totalArea = this.totalLength * this.totalBreadth * this.totalheight;
let myVar = 0;
switch (this.mylocalVar) {
case 0:
myVar = 8;
break;
case 1:
myVar = 9;
break;
case 2:
myVar = 10;
break;
}
this.totalSqft = totalArea * myVar ;
return totalArea * myVar;
}
}
我正在area-component.html
中显示这样的值
<label>{{ myMethod() }}</label>
建议在表达式中调用组件方法吗?或者,如果我使用totalSqft
来显示计算
<label>{{ totalSqft }}</label>
问题在于totalSqft
是如何调用myMethod()
,而后续表单元素totalLength
,totalBreadth
,totalheight
,{{1}的值更改时}?
我正在使用模板驱动的方法。
在模板驱动方法中,此方案是否有可用的替代解决方案?
答案 0 :(得分:2)
直接绑定到方法是非常不鼓励的,因为它可能会导致一些问题。
每次Angular2运行变更检测时都会调用该方法。如果该方法执行一些计算密集型工作,则可能会使您的应用程序无响应。
如果该方法在连续调用时返回不同的结果(例如,每次调用都返回一个新的对象实例),则更改检测会抛出错误,例如`表达式在检查后已更改。
如果您了解陷阱并知道如何避免它们,您可以在绑定中使用方法并且它们可以正常工作,但因为它很容易引起麻烦,所以在样式指南中不鼓励它。
实际上我只是试图找到风格指南规则,告诉它不鼓励但找不到它。