【发布时间】:2019-10-07 21:01:18
【问题描述】:
这个问题可能看起来有点令人困惑,但假设我有一个如下所示的按钮:
<button type="button" class="menu-button" [disabled]="isInvalidForm()">Save</button
isInvalidForm() {
console.log('I am running!');
return this.nameValidator.errors || this.lastnameValidator.errors;
}
当它是这样的时候(我只是为了这个问题而简化了表格),它会记录 100 条“我正在跑步!”因为它被称为那么多。即使当我点击表单时,它又被调用了 100 次..
我怀疑这种检查按钮是否启用的方式看起来并不好.. 另一种方法是在按钮单击时触发该功能,但这绝对不是我想要的。 避免大量调用该函数以禁用简单按钮的最佳方法是什么? (或者在 DOM 元素中使用函数真的可以吗?)
或者简而言之,使用:
<button type="button" class="menu-button" [disabled]="isInvalidForm()">Save</button>
与:
<button type="button" class="menu-button" [disabled]="nameValidator.errors || lastnameValidator.errors">Save</button>
【问题讨论】:
-
“最佳”怎么样?您拥有的代码并没有做任何事情,所以谁在乎它是否被调用了数千次?您是通过函数调用还是其他方式付款? ;)
-
@HereticMonkey - 它只是让人觉得我做错了什么,因为它被称为很多。是的,它没有多大作用,但我确实在乎。如果它是不必要的并且如果有更好的方法可以做到这一点,我不希望它被调用。感谢您的反馈
标签: html angular frontend web-frontend