在模板* ngIf中绑定变量和方法之间是否有任何区别。
例如:
案例1:
<div *ngIf="myVar">ABC</div>
案例2:
<div *ngIf="myFunction()">ABC</div>
myFunction() : boolean {
if (cond1 && cond2 && cond3) {
return true;
} else {
return false;
}
}
对性能有影响吗?
我正在尝试使用2种情况,获取范围错误:超出最大调用堆栈数。
对此有帮助吗?谢谢
答案 0 :(得分:5)
是的
第一个不会有任何性能问题,因为您直接检查变量,而第二个则因为角度使用变化检测并且会触发多次
答案 1 :(得分:1)
当您调用角度触发功能时,每次都会更改检测周期。最好使用get属性
<div *ngIf="myvar">ABC</div>
get myvar() : boolean {
if (cond1 && cond2 && cond3) {
return true;
}
return false;
}
答案 2 :(得分:0)
可以避免出现性能问题的方法是可以创建一个类变量
public myVar = cond1 && cond2 && cond3
然后您可以在第一个选项中使用它并保持代码的可读性