Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kommunikation Mellem Komponenter i Angular | Components and Templates
Introduktion til Angular

bookKommunikation Mellem Komponenter i Angular

Hvordan er de forbundet?

TaskListComponent vil administrere et array af opgaver, hvor hver opgave er et objekt med felterne id, title og completed. For at vise hver opgave bruger vi TaskComponent.

Derudover vil TaskComponent kommunikere med sin overordnede komponent om brugerhandlinger, såsom når en opgave skal slettes eller markeres som fuldført. Denne interaktion sker gennem event-emission.

Implementering af logikken i TaskListComponent

Opret en komponent, der har ansvaret for at administrere opgavelisten. Inden i den defineres et array af opgaver samt to metoder — deleteTask() og toggleStatus() — til håndtering af opgavestyring.

task-list.ts

task-list.ts

task-list.html

task-list.html

task-list.css

task-list.css

copy
  • Listen over opgaver (tasks) administreres inde i komponenten, hvilket gør TaskListComponent til den centrale controller;
  • Metoden deleteTask() filtrerer opgaven fra ved hjælp af dens id;
  • Metoden toggleStatus() finder opgaven via id og skifter dens completed status.

Denne kode anvender direktivet *ngFor til at iterere gennem tasks arrayet og oprette en TaskComponent for hver opgave. Vi ser nærmere på, hvordan *ngFor fungerer i næste afsnit.

  • [task]="task" — sender den aktuelle opgave til børnekomponenten, så den kan vises;

  • (onDelete)="deleteTask($event)" — lytter efter onDelete-begivenheden fra barnet og kalder deleteTask() for at fjerne opgaven;

  • (onToggle)="toggleStatus($event)" — lytter efter onToggle-begivenheden og kalder toggleStatus() for at ændre opgavens status.

Dekoratorer: @Input() og @Output()

Nu er det tid til at forbinde TaskComponent med TaskListComponent, og til det bruger vi dekoratorerne @Input() og @Output().

I Angular er dekoratorerne @Input() og @Output() centrale værktøjer til kommunikation mellem komponenter. De gør det muligt at sende data ind i en komponent og udsende begivenheder ud af en komponent. Her er et kort overblik:

Her er et eksempel på, hvordan de fungerer i TaskComponent:

task.ts

task.ts

task.html

task.html

task.css

task.css

copy

I dette tilfælde er task objektet, der overføres fra forældrekomponenten TaskListComponent til TaskComponent.

Når brugeren enten sletter en opgave eller ændrer dens status, udsender TaskComponent hændelser, som forældrekomponenten lytter efter.

@Output() og EventEmitter bruges til at give besked til forældrekomponenten, når der sker noget i barnekomponenten. Disse dekoratører gør det muligt for barnekomponenten at kommunikere handlinger som sletning af opgaver eller statusændringer til forælderen.

Metoden deleteTask() kaldes, når brugeren ønsker at slette en opgave. Den udsender opgavens id, hvilket gør det muligt for forælderen at fjerne opgaven fra sin liste.

Metoden toggleTask() ændrer opgavens fuldførte status og informerer forældrekomponenten om denne ændring.

Sådan fungerer det hele sammen

  1. TaskListComponent sender en opgave til TaskComponent ved hjælp af @Input();

  2. Brugeren interagerer med opgaven (f.eks. ved at klikke på "Slet");

  3. TaskComponent udsender en begivenhed (onDelete eller onToggle) med opgavens id;

  4. TaskListComponent opfanger begivenheden og opdaterer opgavelisten;

  5. Angular opdaterer automatisk brugergrænsefladen baseret på de opdaterede data.

På denne måde muliggør @Input() og @Output() en ren og effektiv kommunikation mellem komponenter, hvilket holder strukturen organiseret og reaktiv.

1. Hvad gør dekoratøren @Input() i Angular?

2. Hvad er formålet med EventEmitter i Angular?

3. Hvad gør TaskComponent-dekorationen i @Output()?

question mark

Hvad gør dekoratøren @Input() i Angular?

Select the correct answer

question mark

Hvad er formålet med EventEmitter i Angular?

Select the correct answer

question mark

Hvad gør TaskComponent-dekorationen i @Output()?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.13

bookKommunikation Mellem Komponenter i Angular

Stryg for at vise menuen

Hvordan er de forbundet?

TaskListComponent vil administrere et array af opgaver, hvor hver opgave er et objekt med felterne id, title og completed. For at vise hver opgave bruger vi TaskComponent.

Derudover vil TaskComponent kommunikere med sin overordnede komponent om brugerhandlinger, såsom når en opgave skal slettes eller markeres som fuldført. Denne interaktion sker gennem event-emission.

Implementering af logikken i TaskListComponent

Opret en komponent, der har ansvaret for at administrere opgavelisten. Inden i den defineres et array af opgaver samt to metoder — deleteTask() og toggleStatus() — til håndtering af opgavestyring.

task-list.ts

task-list.ts

task-list.html

task-list.html

task-list.css

task-list.css

copy
  • Listen over opgaver (tasks) administreres inde i komponenten, hvilket gør TaskListComponent til den centrale controller;
  • Metoden deleteTask() filtrerer opgaven fra ved hjælp af dens id;
  • Metoden toggleStatus() finder opgaven via id og skifter dens completed status.

Denne kode anvender direktivet *ngFor til at iterere gennem tasks arrayet og oprette en TaskComponent for hver opgave. Vi ser nærmere på, hvordan *ngFor fungerer i næste afsnit.

  • [task]="task" — sender den aktuelle opgave til børnekomponenten, så den kan vises;

  • (onDelete)="deleteTask($event)" — lytter efter onDelete-begivenheden fra barnet og kalder deleteTask() for at fjerne opgaven;

  • (onToggle)="toggleStatus($event)" — lytter efter onToggle-begivenheden og kalder toggleStatus() for at ændre opgavens status.

Dekoratorer: @Input() og @Output()

Nu er det tid til at forbinde TaskComponent med TaskListComponent, og til det bruger vi dekoratorerne @Input() og @Output().

I Angular er dekoratorerne @Input() og @Output() centrale værktøjer til kommunikation mellem komponenter. De gør det muligt at sende data ind i en komponent og udsende begivenheder ud af en komponent. Her er et kort overblik:

Her er et eksempel på, hvordan de fungerer i TaskComponent:

task.ts

task.ts

task.html

task.html

task.css

task.css

copy

I dette tilfælde er task objektet, der overføres fra forældrekomponenten TaskListComponent til TaskComponent.

Når brugeren enten sletter en opgave eller ændrer dens status, udsender TaskComponent hændelser, som forældrekomponenten lytter efter.

@Output() og EventEmitter bruges til at give besked til forældrekomponenten, når der sker noget i barnekomponenten. Disse dekoratører gør det muligt for barnekomponenten at kommunikere handlinger som sletning af opgaver eller statusændringer til forælderen.

Metoden deleteTask() kaldes, når brugeren ønsker at slette en opgave. Den udsender opgavens id, hvilket gør det muligt for forælderen at fjerne opgaven fra sin liste.

Metoden toggleTask() ændrer opgavens fuldførte status og informerer forældrekomponenten om denne ændring.

Sådan fungerer det hele sammen

  1. TaskListComponent sender en opgave til TaskComponent ved hjælp af @Input();

  2. Brugeren interagerer med opgaven (f.eks. ved at klikke på "Slet");

  3. TaskComponent udsender en begivenhed (onDelete eller onToggle) med opgavens id;

  4. TaskListComponent opfanger begivenheden og opdaterer opgavelisten;

  5. Angular opdaterer automatisk brugergrænsefladen baseret på de opdaterede data.

På denne måde muliggør @Input() og @Output() en ren og effektiv kommunikation mellem komponenter, hvilket holder strukturen organiseret og reaktiv.

1. Hvad gør dekoratøren @Input() i Angular?

2. Hvad er formålet med EventEmitter i Angular?

3. Hvad gør TaskComponent-dekorationen i @Output()?

question mark

Hvad gør dekoratøren @Input() i Angular?

Select the correct answer

question mark

Hvad er formålet med EventEmitter i Angular?

Select the correct answer

question mark

Hvad gør TaskComponent-dekorationen i @Output()?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6
some-alt