Sagen wir Angular Reactive Form haben:Wie get() arbeitet in Typoskript
<form [formGroup]="form">
<input formControlName="username">
<div *ngIf="form.get('username').invalid">Invalid</div>
</form>
Und Komponente:
export class FormClass {
form = new FormGroup({
username: new FormControl('', Validators.required);
)}
}
diese Linie kürzer zu machen - <div *ngIf="form.get('username').invalid">Invalid</div>
Wir fügen eine get Methode zur Komponente:
get username() {
return this.form.get('username')
}
So, jetzt können wir tun - <div *ngIf="username.invalid">Invalid</div>
Ich frage mich, warum wir nicht Aufruf diese Methode tun? Wir übergeben es einfach als eine Art Objekt - ohne ()
. Ich meine, diese Methode ist eine Funktion und die Funktion wird so aufgerufen username()
. Ist get()
in diesem Fall irgendwie speziell? Entschuldigung für mein schlechtes TS-Wissen ...
weil so Getter/Setter in JS arbeiten, lesen Sie https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get –
Es ist eine gute Frage, und ich denke, es kann verwirrend sein, wenn Sie in anderen Sprachen (wie Java) nicht daran gewöhnt sind. Es gibt sogenannte Getter und Setter. Ich bin nicht gut darin zu erklären, aber Sie können viele Fragen finden, die hier auf SO gut beantwortet werden, suchen Sie einfach nach Gettern und Setter. – Vega
Danke an alle, ich werde darüber lesen. Und @Maximus - Ich habe diese Seite schon einmal besucht, nur das Lesen/Verstehen von Dokumenten ist immer noch ein bisschen schwer für mich .. –