typescript - Vad är skillnaden mellan att använda en normal direkt egenskapsassignering eller att använda en getter för att sätta värdet på en egenskap i Angular?


Till exempel, vad är skillnaden mellan detta:

get name() { return this.formGroup.get('name') }

och detta:

public name = this.formGroup.get('name')

Tack.

Svar #1

När du använder en direkt tilldelning tilldelar du i princip värdet och det är allt. Det finns ingen referens till det ursprungliga värdet. Detta innebär att när formGroup-värdet uppdateras, kommer namn-värdet att behålla det värde det fick när det ursprungligen tilldelades (om du inte tilldelar det igen).

När du använder en getter kommer värdet alltid att vara det som returneras inuti gettern. Det innebär att varje gång metoden kallas kommer den att returnera det faktiska värdet från formulärkontrollen. Så till exempel, om du vill visa värdet från formulärkontrollen i HTML, bör du använda gettern eftersom ändringsdetektering kommer att göra att det faktiska värdet visas.