2017-07-24 70 views
0

說我們有角反應形式:如何獲得()的打字稿工作

<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知識...

+0

因爲這就是getters/setters如何在JS中工作,請閱讀https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get –

+0

這是一個很好的問題,我認爲它可以如果你不習慣在其他語言(如Java)中使用它,會令人困惑。有名爲getter和setter。我不善於解釋,但你可以在這裏找到許多很好的答案,只需要尋找獲得者和接受者。 – Vega

+0

謝謝大家,我會讀一讀。和@Maximus - 我以前訪問過那個頁面,只是閱讀/理解文檔對我來說還是有點難... –

回答

1

因爲通過添加get使它成爲吸氣劑並且可以像字段一樣被訪問(讀取)。這是一個TypeScript功能。

使用set您可以創建一個匹配的setter,並且您可以讀取它們並將其設置爲一個字段。

+0

我希望你的個人資料圖像至少在20年前製作完成。謝謝你的回答,現在它對我來說更加清晰 –