【发布时间】:2017-07-24 16:53:17
【问题描述】:
假设我们有 Angular Reactive 表单:
<form [formGroup]="form">
<input formControlName="username">
<div *ngIf="form.get('username').invalid">Invalid</div>
</form>
和组件:
export class FormClass {
form = new FormGroup({
username: new FormControl('', Validators.required);
)}
}
为了使这条线更短 -
<div *ngIf="form.get('username').invalid">Invalid</div>
我们给组件添加一个get方法:
get username() {
return this.form.get('username')
}
所以现在我们可以做 -
<div *ngIf="username.invalid">Invalid</div>
我想知道为什么我们不调用这个方法?我们只是将它作为一种对象传递——没有()。我的意思是这个方法是一个函数,函数像username() 一样被调用。在这种情况下,get() 有什么特别之处吗?抱歉我的 TS 知识不好...
【问题讨论】:
-
因为这就是 getter/setter 在 JS 中的工作方式,请阅读 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
这是一个很好的问题,如果您不习惯其他语言(如 Java),我认为它可能会令人困惑。有命名的 getter 和 setter。我不擅长解释,但是您可以在 SO 上找到很多问题在这里得到很好的回答,只需寻找 getter 和 setter。
-
谢谢大家,我会读一下。还有@Maximus - 我以前访问过那个页面,只是阅读/理解文档对我来说还是有点困难..
标签: angular typescript get