Opprette en dagligvarelistehåndtering ved hjelp av kantet, del 2 Administrere elementer

I den første delen av denne Angular-opplæringsserien så du hvordan du kommer i gang med å lage en dagligvareliste med Angular. Du lærte hvordan du lager visningen for dagligvarekomponenten, legger til varer i dagligvarelisten og viser de lagt til elementene.

I denne delen implementerer du funksjonene for å markere ferdige elementer, redigere eksisterende elementer og fjerne tilsatte elementer.

Starter

La oss begynne med å klone kildekoden fra første del av opplæringen. Fra terminalen din, skriv inn følgende kode for å klone kildekoden:

git klon https://github.com/royagasthyan/AngularGrocery

Når kildekoden er klonet, naviger til prosjektmappen og installer de nødvendige avhengighetene.

cd AngularGrocery npm installere

Etter at du har installert avhengighetene, kan du starte serveren. Skriv inn følgende kommandoer fra prosjektmappen:

ng tjene

Pek nettleseren din til http: // localhost: 4200 / og du bør ha programmet kjører.

Oppdaterer dagligvarer

Når du har matvareelementene lagt til i listen, bør du kunne redigere og oppdatere elementene. La oss gi en redigeringsknapp i listelisten som, når den klikkes, vil aktivere redigering av eksisterende elementer.

Endre app.grocery.html kode for å inkludere redigeringsknappen inne i rutenettet.

Lagre endringene ovenfor og start serveren på nytt. Legg inn siden og skriv inn noen elementer, og du vil ha redigeringsknappen for hvert element.

Når brukeren klikker på redigeringsknappen, må du legge til en på-klikk-metode for å håndtere elementet redigere. Endre app.grocery.html å legge til et på-klikk-arrangement for redigering av elementet.

Send meg oppgave til onEdit metode som vist i koden ovenfor for å identifisere elementet som skal redigeres.

Inne i GroceryComponent klassen initialiserer oppgave variabel som vist:

oppgave = navn: ", id: 0;

ved trykk metode, du vil sjekke for id for å se om det er et eksisterende element eller et nytt element. Endre ved trykk metode som vist:

hvis (this.task.id == 0) this.tasks.push (id: (new Date ()). getTime (), navn: this.task.name); 

Som vist har du tildelt et unikt tidsstempel som id til hver oppgave. La oss nå definere onEdit metode for å redigere eksisterende element. Inne i onEdit metode, tilordne passet inn punkt til oppgave variabel.

onEdit (item) this.task = item; 

Lagre endringene og start serveren på nytt. Skriv inn et nytt element i dagligvarelisten og klikk på den tilsvarende redigeringsknappen. Du vil kunne redigere og oppdatere oppføringen ved å klikke på OK knapp.

Slette dagligvarer

La oss legge til et slettikon for å fjerne eksisterende elementer. Oppdater app.grocery.html fil for å endre HTML-koden som vist:

Her er hvordan komplett app.grocery.html fil ser ut:

Daglig lederliste

  • oppgavenavn

Legg til et på-klikk-arrangement til fjernikonet for å slette dagligvarehandelen.

Lagre endringene og start serveren på nytt. Prøv å legge til nye elementer i dagligvarehandler-appen, og du vil ha elementene oppført sammen med slett og rediger ikoner.

For å implementere slettingsfunksjonen må du legge til onDelete metode i app.grocery.ts fil som vist:

onDelete (item) // Slett funksjonalitet vil være her

Når brukeren klikker på slettikonet, må du sjekke varen id mot varemerkelisten og fjern oppføringen fra oppgaver liste. Her er hvordan onDelete metoden ser ut:

onDelete (item) for (var i = 0; i < this.tasks.length; i++) if(item.id == this.tasks[i].id) this.tasks.splice(i,1); break;   

Som vist i ovennevnte kode, har du iterert oppgaver liste og sjekket det mot det klikket elementet id. Hvis det matchet elementet i oppgaver liste, den er fjernet ved hjelp av skjøt metode.

Lagre endringene ovenfor og start serveren på nytt. Legg til noen elementer i dagligvarehandleren. Det vil bli lagt til med slett og rediger ikoner til oppgavelisten. Prøv å klikke på fjernikonet, og elementet blir slettet fra elementlisten.

Markerer dagligvareelementet som ferdig

La oss legge til funksjonaliteten for å finne ut elementene som er lagt til i listen. Når brukeren er ferdig med oppgavene i dagligvareleder, bør det være mulig å slå ut de fullførte oppgavene. For å spore de nye og fullførte oppgavene, legg til en ny variabel streik til oppgaveinformasjonen. 

Endre ved trykk metode for å inkludere den nye streik variabel som vist:

 onClick () if (this.task.id == 0) this.tasks.push (id: (ny dato ()). getTime (), navn: this.task.name, streik: false);  this.task = name: ", id: 0;

Legg til en ny klasse som heter streik i src / style.css fil som ville slå ut varen.

.streik text-decoration: line-through; 

Inkluder et på-klikk-arrangement på elementet for å veksle streik variabel i elementvariabelen. Du søker på streik klasse til elementene basert på den boolske verdien av streik variabel. Som standard vil det være feil. Her er onStrike metode for å bytte streikvariabler verdien:

onStrike (element) for (var i = 0; i < this.tasks.length; i++) if(item.id == this.tasks[i].id) if(this.tasks[i].strike) this.tasks[i].strike = false;  else this.tasks[i].strike = true;  break;   

Som vist i den ovennevnte metoden, gjenspeiler du gjennom listen over elementer. Når elementet er funnet, bytter du streikverdien.

Basert på streik variabel, må du bruke klassen streik til oppgave navn span. Slik ser det ut:

  oppgavenavn  

Som vist har du brukt ngClass direktiv for å bruke klassen streik til spenningselementet hvis task.strike verdien er ekte.

Lagre endringene ovenfor og start serveren på nytt. Legg til elementene i listen og klikk på det lagt til. Når du har klikket, blir elementet slått ut som forventet.

Pakke det opp

I denne veiledningen så du hvordan du oppdaterer, sletter og merker oppgaven som fullført i dagligvareprogrammet ved hjelp av Angular. Jeg håper du likte opplæringen. Gi meg beskjed om dine tanker i kommentarene nedenfor.

JavaScript har blitt et av de de facto språkene som fungerer på nettet. Det er ikke uten sine lærekurver, og det er nok av rammer og biblioteker for å holde deg opptatt også. Hvis du leter etter flere ressurser for å studere eller bruke i arbeidet ditt, sjekk ut hva vi har tilgjengelig på Envato-markedet.

Å, og ikke glem at kildekoden fra denne opplæringen er tilgjengelig på GitHub.