Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Legge til funksjonalitet i applikasjonen vår | Tjenester og Avhengighetsinjeksjon i Angular
Introduksjon til Angular

Legge til funksjonalitet i applikasjonen vår

Sveip for å vise menyen

På dette stadiet kan applikasjonen vår allerede vise en liste over oppgaver og vise en melding når det ikke finnes noen. Brukerne har imidlertid fortsatt ikke mulighet til å legge inn nye oppgaver.

Vi skal legge til muligheten for å opprette en ny oppgave ved hjelp av en praktisk knapp og et modal-skjema.

Vi skal implementere:

  • En stilig Add-knapp;

  • Et modalvindu med et inndatafelt for oppgavetittel;

  • Logikken for å legge til en oppgave i listen i TaskService;

  • Automatisk generering av en unik identifikator.

Komme i gang

Det første vi må gjøre er å utvide TaskService slik at den kan opprette og lagre nye oppgaver. Tjenesten skal ikke bare lagre oppgaver, men også håndtere all forretningslogikk knyttet til dem.

Vi skal opprette en addTask-metode i tjenesten. Generering av en unik ID, opprettelse av oppgaveobjektet og lagring i listen vil alt skje inne i tjenesten. Metoden vil kun motta en title, som sendes fra TaskListComponent.

task-service.ts

task-service.ts

Metoden addTask() tar kun inn oppgavetittelen og oppretter Task-objektet internt. Den finner først det høyeste ID-nummeret blant eksisterende oppgaver, og legger deretter til 1 for å generere en unik identifikator. Den nye oppgaven settes alltid som ufullført (completed: false) og legges umiddelbart til i tasks-arrayet.

Denne tilnærmingen fjerner unødvendig logikk fra komponenten og gjør tjenesten både selvstendig og gjenbrukbar.

Oppdatering av TaskListComponent

Nå som all logikk for å opprette en ny oppgave er flyttet til tjenesten, er komponenten kun ansvarlig for å motta brukerinput, sende oppgavetittelen til tjenesten og oppdatere den lokale oppgavelisten. Denne tilnærmingen forenkler komponenten og sentraliserer forretningslogikken i TaskService.

I komponenten legger vi til to variabler:

  • showAddTask — et flagg som styrer synligheten til modalen for å legge til en oppgave;

  • newTaskTitle — en streng som holder oppgavetittelen fra brukeren.

Vi implementerer også metoden addTask(), som:

  1. Sjekker at input-strengen ikke er tom;

  2. Sender oppgavetittelen til tjenestens addTask(title: string)-metode;

  3. Oppdaterer den lokale oppgavelisten;

  4. Tømmer input-feltet og lukker modalen.

task-component.ts

task-component.ts

Metoden addTask() er nå så enkel som mulig: den håndterer kun brukerinteraksjon og overlater all forretningslogikk til tjenesten. Dette gjør koden enklere å vedlikeholde og teste.

Sørg også for at FormsModule er importert i modulen din, da dette er nødvendig for toveis databinding med newTaskTitle.

Legg til knapp og modalvindu

Nå skal vi legge til UI-delen: Legg til-knappen og HTML-markupen for modalvinduet som inkluderer inputfeltet og knappene.

task-component.html

task-component.html

component-style.css

component-style.css

Når brukeren klikker på Add-knappen, blir variabelen showAddTask satt til true, og modale vinduet vises. Inndatafeltet er bundet til variabelen newTaskTitle via [(ngModel)], og knappene lagrer enten oppgaven eller lukker modalen uten endringer.

Brukere kan enkelt legge til oppgaver gjennom et modalt skjema. Den nye oppgaven vises umiddelbart i listen uten at siden må oppdateres.

Vi har nå implementert interaktivitet som gjør applikasjonen vår fullverdig og brukervennlig for daglig bruk.

question mark

Hva gjør addTask-metoden i TaskService?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4

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

Legge til funksjonalitet i applikasjonen vår

På dette stadiet kan applikasjonen vår allerede vise en liste over oppgaver og vise en melding når det ikke finnes noen. Brukerne har imidlertid fortsatt ikke mulighet til å legge inn nye oppgaver.

Vi skal legge til muligheten for å opprette en ny oppgave ved hjelp av en praktisk knapp og et modal-skjema.

Vi skal implementere:

  • En stilig Add-knapp;

  • Et modalvindu med et inndatafelt for oppgavetittel;

  • Logikken for å legge til en oppgave i listen i TaskService;

  • Automatisk generering av en unik identifikator.

Komme i gang

Det første vi må gjøre er å utvide TaskService slik at den kan opprette og lagre nye oppgaver. Tjenesten skal ikke bare lagre oppgaver, men også håndtere all forretningslogikk knyttet til dem.

Vi skal opprette en addTask-metode i tjenesten. Generering av en unik ID, opprettelse av oppgaveobjektet og lagring i listen vil alt skje inne i tjenesten. Metoden vil kun motta en title, som sendes fra TaskListComponent.

task-service.ts

task-service.ts

Metoden addTask() tar kun inn oppgavetittelen og oppretter Task-objektet internt. Den finner først det høyeste ID-nummeret blant eksisterende oppgaver, og legger deretter til 1 for å generere en unik identifikator. Den nye oppgaven settes alltid som ufullført (completed: false) og legges umiddelbart til i tasks-arrayet.

Denne tilnærmingen fjerner unødvendig logikk fra komponenten og gjør tjenesten både selvstendig og gjenbrukbar.

Oppdatering av TaskListComponent

Nå som all logikk for å opprette en ny oppgave er flyttet til tjenesten, er komponenten kun ansvarlig for å motta brukerinput, sende oppgavetittelen til tjenesten og oppdatere den lokale oppgavelisten. Denne tilnærmingen forenkler komponenten og sentraliserer forretningslogikken i TaskService.

I komponenten legger vi til to variabler:

  • showAddTask — et flagg som styrer synligheten til modalen for å legge til en oppgave;

  • newTaskTitle — en streng som holder oppgavetittelen fra brukeren.

Vi implementerer også metoden addTask(), som:

  1. Sjekker at input-strengen ikke er tom;

  2. Sender oppgavetittelen til tjenestens addTask(title: string)-metode;

  3. Oppdaterer den lokale oppgavelisten;

  4. Tømmer input-feltet og lukker modalen.

task-component.ts

task-component.ts

Metoden addTask() er nå så enkel som mulig: den håndterer kun brukerinteraksjon og overlater all forretningslogikk til tjenesten. Dette gjør koden enklere å vedlikeholde og teste.

Sørg også for at FormsModule er importert i modulen din, da dette er nødvendig for toveis databinding med newTaskTitle.

Legg til knapp og modalvindu

Nå skal vi legge til UI-delen: Legg til-knappen og HTML-markupen for modalvinduet som inkluderer inputfeltet og knappene.

task-component.html

task-component.html

component-style.css

component-style.css

Når brukeren klikker på Add-knappen, blir variabelen showAddTask satt til true, og modale vinduet vises. Inndatafeltet er bundet til variabelen newTaskTitle via [(ngModel)], og knappene lagrer enten oppgaven eller lukker modalen uten endringer.

Brukere kan enkelt legge til oppgaver gjennom et modalt skjema. Den nye oppgaven vises umiddelbart i listen uten at siden må oppdateres.

Vi har nå implementert interaktivitet som gjør applikasjonen vår fullverdig og brukervennlig for daglig bruk.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
some-alt