Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tjenesteinjeksjon i en Komponent | Services and Dependency Injection in Angular
Introduksjon til Angular

bookTjenesteinjeksjon i en Komponent

Du har opprettet TaskService, som håndterer lagring og administrasjon av oppgavelisten. Tjenesten i seg selv samhandler imidlertid ikke med brukergrensesnittet. For å hente data fra tjenesten inn i komponentens mal, må du injisere tjenesten i den tilhørende komponenten.

Nå skal du se hvordan Angular automatisk hjelper til med å koble tjenester til komponenter ved hjelp av Dependency Injection (DI), og hvordan tjenesten fungerer inne i komponenten.

Hva er Dependency Injection?

Note
Definisjon

Dependency Injection (DI) er et designmønster der Angular automatisk injiserer nødvendige avhengigheter (som tjenester) inn i en komponents konstruktør.

Takket være DI oppretter ikke komponenter tjenesteinstanser selv — de mottar bare en allerede opprettet instans. Angular håndterer leveringen av nødvendige objekter til de som trenger dem.

Dette fungerer fordi tjenesten er dekorert med:

@Injectable({
  providedIn: 'root'
})

Denne dekoratøren instruerer Angular om å opprette én enkelt instans (singleton) av tjenesten for hele appen og gjøre den tilgjengelig for DI.

Injisering av tjenesten i en komponent

Nå skal vi injisere TaskService i TaskListComponent slik at den kan hente oppgavelisten og samhandle med den.

Slik ser komponentkoden ut:

task-list.ts

task-list.ts

copy

Vi importerer TaskService, Task-grensesnittet, og andre komponenter og moduler som trengs for malen.

I komponentens konstruktør legger vi til tjenesten via Dependency Injection:

task-list.ts

task-list.ts

copy

Du lagrer den som et privat felt for bruk i komponentmetoder. Rett etter at komponenten er opprettet (inne i konstruktøren), henter vi oppgavelisten. Denne listen brukes deretter i HTML-malen.

Metodene deleteTask og toggleStatus kaller tjenestens funksjoner for å slette en oppgave eller endre dens status, og oppdaterer deretter den lokale tasks-arrayen slik at brukergrensesnittet gjenspeiler endringene.

Denne tilnærmingen holder komponenten enkel: den vet ikke hvordan dataene lagres eller håndteres — den ber bare tjenesten om å oppdatere dem. Dette gir en tydelig ansvarsfordeling: komponenter håndterer visningen, og tjenester håndterer dataene.

1. Hva er Dependency Injection (DI) i Angular?

2. Hvorfor oppdaterer vi this.tasks etter å ha kalt deleteTask eller toggleStatus?

question mark

Hva er Dependency Injection (DI) i Angular?

Select the correct answer

question mark

Hvorfor oppdaterer vi this.tasks etter å ha kalt deleteTask eller toggleStatus?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 3.13

bookTjenesteinjeksjon i en Komponent

Sveip for å vise menyen

Du har opprettet TaskService, som håndterer lagring og administrasjon av oppgavelisten. Tjenesten i seg selv samhandler imidlertid ikke med brukergrensesnittet. For å hente data fra tjenesten inn i komponentens mal, må du injisere tjenesten i den tilhørende komponenten.

Nå skal du se hvordan Angular automatisk hjelper til med å koble tjenester til komponenter ved hjelp av Dependency Injection (DI), og hvordan tjenesten fungerer inne i komponenten.

Hva er Dependency Injection?

Note
Definisjon

Dependency Injection (DI) er et designmønster der Angular automatisk injiserer nødvendige avhengigheter (som tjenester) inn i en komponents konstruktør.

Takket være DI oppretter ikke komponenter tjenesteinstanser selv — de mottar bare en allerede opprettet instans. Angular håndterer leveringen av nødvendige objekter til de som trenger dem.

Dette fungerer fordi tjenesten er dekorert med:

@Injectable({
  providedIn: 'root'
})

Denne dekoratøren instruerer Angular om å opprette én enkelt instans (singleton) av tjenesten for hele appen og gjøre den tilgjengelig for DI.

Injisering av tjenesten i en komponent

Nå skal vi injisere TaskService i TaskListComponent slik at den kan hente oppgavelisten og samhandle med den.

Slik ser komponentkoden ut:

task-list.ts

task-list.ts

copy

Vi importerer TaskService, Task-grensesnittet, og andre komponenter og moduler som trengs for malen.

I komponentens konstruktør legger vi til tjenesten via Dependency Injection:

task-list.ts

task-list.ts

copy

Du lagrer den som et privat felt for bruk i komponentmetoder. Rett etter at komponenten er opprettet (inne i konstruktøren), henter vi oppgavelisten. Denne listen brukes deretter i HTML-malen.

Metodene deleteTask og toggleStatus kaller tjenestens funksjoner for å slette en oppgave eller endre dens status, og oppdaterer deretter den lokale tasks-arrayen slik at brukergrensesnittet gjenspeiler endringene.

Denne tilnærmingen holder komponenten enkel: den vet ikke hvordan dataene lagres eller håndteres — den ber bare tjenesten om å oppdatere dem. Dette gir en tydelig ansvarsfordeling: komponenter håndterer visningen, og tjenester håndterer dataene.

1. Hva er Dependency Injection (DI) i Angular?

2. Hvorfor oppdaterer vi this.tasks etter å ha kalt deleteTask eller toggleStatus?

question mark

Hva er Dependency Injection (DI) i Angular?

Select the correct answer

question mark

Hvorfor oppdaterer vi this.tasks etter å ha kalt deleteTask eller toggleStatus?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3
some-alt