【发布时间】:2020-12-03 14:57:50
【问题描述】:
很长一段时间以来,我一直在我的 HTML 页面中大量使用 Angular 的条件:
<p *ngIf="var === true">Test</p>
(例如)
除了在某些页面上我有 *ngIf 需要进行数十次检查(有时甚至在同一页面中的多个标签上使用)
<p *ngIf="var1 === true && var2 === true && var3 === true && var4 === true && var5 === true && var6 === true && var7 === true && var8 = == true && var9 === true && var10 === true">Test</p>
(例如)
所以我只是修改了这个:
<p *ngIf="this.isVarsTrue()">Test</p>
在我的 TS 页面中
isVarsTrue () {
if (var1 === true && var2 === true && var3 === true && var4 === true && var5 === true && var6 === true && var7 === true && var8 === true && var9 === true && var10 === true) {
return true;
} else {
return false;
}
}
但是,通过在此方法中添加控制台日志,我发现它被调用了很多次(页面上的每个操作接近就绪 5 次),因此我想知道这是否是一个好习惯。
感谢您的回答。
【问题讨论】:
-
内联版本也被多次调用,所以没有区别。像这样调用一个简单的函数 5 次实际上没什么。 (另外,您可以只使用
return var1 === true && ...if(condition) return true; else return false;中的任何一点) -
如果你想说有些是真的,我通常使用简单的:,例如
*ngIf="var1 && var2 && var3"。 -是的,我知道如果 var1 的值为“hello”,则条件为真,但没有人让我的变量得到值“hello”:)-。关于你的问题,性能没有区别。我喜欢明确地说“在线”。注意:尝试对变量进行排序,比其他变量更不可能得到值“true” -
谢谢你的回答,太好了,我现在看得更清楚了! :)
标签: angular typescript angular-ng-if