【发布时间】:2020-01-27 09:48:18
【问题描述】:
我试图了解绑定到角度模板中的函数与绑定到变量/表达式是否是一种不好的做法。有什么区别吗?
例如:
选项 1
<span *ngIf="!!myForm.value && !!myform.errors && !!myForm.errors['required']" ...
对
选项 2
HTML
<span *ngIf="requiredError" ...
TS
get requireError() {
return !!this.myForm.value && !!this.myform.errors && !!this.myForm.errors['required'];
}
据我了解没有区别,两个表达式都将继续执行,在这种情况下,我总是选择选项 2。但是,我一直被告知属性/函数绑定是不好的,因为 Angular 添加了一个观察者和函数一直在执行。我的理解是,选项 1 也是如此。我非常感谢一些描述此问题的文章或文档链接,在网上找不到太多内容。
具体来说,当使用有效的、触摸的、脏的(在 Angular 中已经是 get 属性)时,我看不出它会有什么不同,除非 Angular 以某种方式神奇地处理这些不同。
我看到风格指南有一个简短的提及:https://angular.io/guide/styleguide#put-presentation-logic-in-the-component-class
【问题讨论】:
-
检查这个:“为什么你不应该在 Angular 模板表达式中使用函数调用”,作者 Jurgen Van de Moere link.medium.com/gqzy8N1Gj0
标签: angular data-binding binding