Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Typer av Databindning i Angular | Components and Templates
Introduktion till Angular

bookTyper av Databindning i Angular

När en komponent och dess mall interagerar kan du överföra data och händelser mellan dem på olika sätt. Detta kallas databindning.

I Angular finns det fyra typer av databindning, var och en med ett specifikt syfte.

Låt oss titta på hur de fungerar med hjälp av en enkel uppgiftskomponent som exempel:

task-component.ts

task-component.ts

copy

Här skapar vi ett task-objekt med tre egenskaper: id, title och completed. Dessa egenskaper beskriver en specifik uppgift—dess namn och om den har slutförts.

Interpolering

Till exempel, om du har en variabel som task.title, kan du omsluta den med {{ }}, och Angular kommer att rendera dess värde i HTML-koden.

task-component.html

task-component.html

copy

När Angular bearbetar mallen hittar den uttrycket {{ task.title }} och ersätter det med det aktuella värdet av task.title från komponenten.

Om värdet är 'Buy groceries', är det precis det som kommer att visas inuti <h3>-taggen. Samma process gäller för alla andra värden du interpolerar.

Så, interpolering är envägs: data flödar från komponenten till mallen, och användaren ser helt enkelt resultatet.

Egenskapsbindning

Ibland vill du inte bara visa text — du vill styra elementets beteende, som att inaktivera en knapp, ange en bildkälla eller markera en kryssruta.

Angular låter dig binda värden till HTML-elementets egenskaper med hjälp av hakparenteser.

task-component.html

task-component.html

copy

Föreställ dig att uppgiften redan är slutförd (task.completed = true). I så fall vill vi att knappen ska vara inaktiverad. När Angular ser [disabled]="task.completed" tar den värdet från komponenten och binder det till DOM-elementets disabled-egenskap.

Om värdet är true blir knappen inaktiverad. Om det är false förblir knappen aktiv.

Detta är återigen envägsbindning: data flödar från komponenten till mallen, och mallen anpassas efter det aktuella tillståndet för task-objektet.

Händelsebindning

För att få din app att reagera på användaråtgärder (som klick) tillhandahåller Angular händelsebindning. När en användare interagerar med ett element kan du "fånga" den händelsen och anropa en metod i din komponent.

Låt oss lägga till en metod i komponenten:

task-component.ts

task-component.ts

copy

Och uppdatera mallen:

task-component.html

task-component.html

copy

När användaren klickar på knappen upptäcker Angular (click)-händelsen och anropar metoden toggleComplete() i komponenten. Denna metod växlar värdet på task.completed. Därefter renderar Angular om mallen, och tack vare interpolationen ({{ task.completed ? 'Undo' : 'Complete' }}) uppdateras knappens text omedelbart.

Här flödar data i en riktning — från mallen tillbaka till komponenten (du skickar en åtgärd inåt).

Tvåvägsbindning

Ibland vill du att ändringar i mallen (till exempel när du skriver i ett inmatningsfält) omedelbart ska uppdatera komponenten — och att ändringar i komponenten omedelbart ska uppdatera mallen. Angular gör detta enkelt med tvåvägsbindning med hjälp av [(ngModel)].

Viktigt: För att använda [(ngModel)] måste du importera FormsModule — som visas nedan:

task-component.ts

task-component.ts

copy

Och här är mallen:

task-component.html

task-component.html

copy

Här sker magin med tvåvägsbindning. När en användare skriver i inmatningsfältet uppdaterar Angular automatiskt task.title i komponenten. Och när task.title ändras i komponenten, återspeglar Angular omedelbart den uppdateringen i inmatningsfältet.

Till skillnad från andra typer av bindning håller tvåvägsbindning komponenten och mallen synkroniserade hela tiden.

Viktiga skillnader

Var och en av dessa bindningsmetoder har sina egna egenskaper och lämpar sig bäst för olika scenarier av datainteraktion inom en applikation.

1. Vilken typ av databindning används för att visa värdet av en komponents variabel i mallen?

2. Vilken typ av databindning gör det möjligt att uppdatera en komponents variabel via ett formulär och håller den synkroniserad med inmatningselementet i mallen?

3. Vilken typ av databindning skulle användas för att göra en knapp inaktiverad när en uppgift är slutförd?

4. Vilken typ av databindning möjliggör att en komponentmetod anropas när en knapp klickas?

question mark

Vilken typ av databindning används för att visa värdet av en komponents variabel i mallen?

Select the correct answer

question mark

Vilken typ av databindning gör det möjligt att uppdatera en komponents variabel via ett formulär och håller den synkroniserad med inmatningselementet i mallen?

Select the correct answer

question mark

Vilken typ av databindning skulle användas för att göra en knapp inaktiverad när en uppgift är slutförd?

Select the correct answer

question mark

Vilken typ av databindning möjliggör att en komponentmetod anropas när en knapp klickas?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 3.13

bookTyper av Databindning i Angular

Svep för att visa menyn

När en komponent och dess mall interagerar kan du överföra data och händelser mellan dem på olika sätt. Detta kallas databindning.

I Angular finns det fyra typer av databindning, var och en med ett specifikt syfte.

Låt oss titta på hur de fungerar med hjälp av en enkel uppgiftskomponent som exempel:

task-component.ts

task-component.ts

copy

Här skapar vi ett task-objekt med tre egenskaper: id, title och completed. Dessa egenskaper beskriver en specifik uppgift—dess namn och om den har slutförts.

Interpolering

Till exempel, om du har en variabel som task.title, kan du omsluta den med {{ }}, och Angular kommer att rendera dess värde i HTML-koden.

task-component.html

task-component.html

copy

När Angular bearbetar mallen hittar den uttrycket {{ task.title }} och ersätter det med det aktuella värdet av task.title från komponenten.

Om värdet är 'Buy groceries', är det precis det som kommer att visas inuti <h3>-taggen. Samma process gäller för alla andra värden du interpolerar.

Så, interpolering är envägs: data flödar från komponenten till mallen, och användaren ser helt enkelt resultatet.

Egenskapsbindning

Ibland vill du inte bara visa text — du vill styra elementets beteende, som att inaktivera en knapp, ange en bildkälla eller markera en kryssruta.

Angular låter dig binda värden till HTML-elementets egenskaper med hjälp av hakparenteser.

task-component.html

task-component.html

copy

Föreställ dig att uppgiften redan är slutförd (task.completed = true). I så fall vill vi att knappen ska vara inaktiverad. När Angular ser [disabled]="task.completed" tar den värdet från komponenten och binder det till DOM-elementets disabled-egenskap.

Om värdet är true blir knappen inaktiverad. Om det är false förblir knappen aktiv.

Detta är återigen envägsbindning: data flödar från komponenten till mallen, och mallen anpassas efter det aktuella tillståndet för task-objektet.

Händelsebindning

För att få din app att reagera på användaråtgärder (som klick) tillhandahåller Angular händelsebindning. När en användare interagerar med ett element kan du "fånga" den händelsen och anropa en metod i din komponent.

Låt oss lägga till en metod i komponenten:

task-component.ts

task-component.ts

copy

Och uppdatera mallen:

task-component.html

task-component.html

copy

När användaren klickar på knappen upptäcker Angular (click)-händelsen och anropar metoden toggleComplete() i komponenten. Denna metod växlar värdet på task.completed. Därefter renderar Angular om mallen, och tack vare interpolationen ({{ task.completed ? 'Undo' : 'Complete' }}) uppdateras knappens text omedelbart.

Här flödar data i en riktning — från mallen tillbaka till komponenten (du skickar en åtgärd inåt).

Tvåvägsbindning

Ibland vill du att ändringar i mallen (till exempel när du skriver i ett inmatningsfält) omedelbart ska uppdatera komponenten — och att ändringar i komponenten omedelbart ska uppdatera mallen. Angular gör detta enkelt med tvåvägsbindning med hjälp av [(ngModel)].

Viktigt: För att använda [(ngModel)] måste du importera FormsModule — som visas nedan:

task-component.ts

task-component.ts

copy

Och här är mallen:

task-component.html

task-component.html

copy

Här sker magin med tvåvägsbindning. När en användare skriver i inmatningsfältet uppdaterar Angular automatiskt task.title i komponenten. Och när task.title ändras i komponenten, återspeglar Angular omedelbart den uppdateringen i inmatningsfältet.

Till skillnad från andra typer av bindning håller tvåvägsbindning komponenten och mallen synkroniserade hela tiden.

Viktiga skillnader

Var och en av dessa bindningsmetoder har sina egna egenskaper och lämpar sig bäst för olika scenarier av datainteraktion inom en applikation.

1. Vilken typ av databindning används för att visa värdet av en komponents variabel i mallen?

2. Vilken typ av databindning gör det möjligt att uppdatera en komponents variabel via ett formulär och håller den synkroniserad med inmatningselementet i mallen?

3. Vilken typ av databindning skulle användas för att göra en knapp inaktiverad när en uppgift är slutförd?

4. Vilken typ av databindning möjliggör att en komponentmetod anropas när en knapp klickas?

question mark

Vilken typ av databindning används för att visa värdet av en komponents variabel i mallen?

Select the correct answer

question mark

Vilken typ av databindning gör det möjligt att uppdatera en komponents variabel via ett formulär och håller den synkroniserad med inmatningselementet i mallen?

Select the correct answer

question mark

Vilken typ av databindning skulle användas för att göra en knapp inaktiverad när en uppgift är slutförd?

Select the correct answer

question mark

Vilken typ av databindning möjliggör att en komponentmetod anropas när en knapp klickas?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
some-alt