Angulari juhised

Samm 1 / 32

  • Kontrolli, kas sul on NPM olemas
  • Kui NPM is not recognised, installi see siit: NodeJS Windows 64bit või NodeJS Windows 32bit


  • Angular instruction
  • Installi Angulari command line interface: cli.angular.io
  • Sulge command prompt, et saaksid Angulari (ng) CLI'd kasutama hakata
  • Ava uus command prompt aken
  • Kirjuta kontrolliks "ng", nägemaks kõiki Angulari käske
  • Angular instruction
  • Uue projekti tegemiseks kasuta käsku: ng new PROJEKTI-NIMI
  • Jah, las Angular genereerib meile routing faili ja impordid valmis
  • Kasutame kujunduseks CSS-i


  • Angular instruction
  • Ava projekti kaust (kus sa ng new käsu tegid) Visual Studio Code's
  • e2e kaust on sisseehitatud end to end testide jaoks (Protractor Seleniumi baasil)
  • node_modules kausta sees on kõik dependency'd (@angular kaust on põhiline)
  • Tänase päeva jooksul muudame vaid src kausta


  • Angular instruction
  • Mina olen lisanud endale Angular ikoonide teema "Philip Kief poolt"
  • Soovi korral (et oleks samasugune vaade) võite selle extensions alt lisada


  • Angular instruction
  • Pange projekt käima käsu "ng serve" abil
  • ng serve käsk tuleb teha projekti kausta (seal kus on angular.json fail)
  • Angular läheb nüüd käima pordil localhost:4200
  • Kui tahta, et projekt kohe pärast kompileerimist chromes lahti tuleks või kasutada käsku: "ng serve --open" (lühend "ng s -o")
  • Kui mitmes aknas "ng serve" kirjutada, siis on port hõivatud ja tuleb kirjutada "ng serve --port", mis genereerib juhusliku pordi

  • Angular instruction
  • Teeme app.component.html placeholderist tühjaks ja jätame vaid router-outlet'i


  • Angular instruction
  • Genereeri uued componendid "ng generate component COMPONENDI_NIMI" käsuga (lühend ng g c NIMI)
  • Teeme 3 componenti: listi näitamiseks, muutmiseks, ostukorviks
  • Iga component on nelik: "HTML, CSS, TS ja SPEC (Unit test)" failidest
  • Kõik componendid deklareeritakse app.module's (vt ka command promptis UPDATE rida lisaks CREATE ridadele)

  • Angular instruction
  • App-routingu failis saame tähistada mis pathil mis componenti näidatakse
  • Tühi path ("") tähendab, et kui localhost:4200-le midagi ei järgne
  • Koolon tähistab muutujat
  • Kontrolli, et oleksid üleval componentide impordid ja et objektide massiivis oleksid elemendid eraldatud komaga

  • Angular instruction
  • Kui server käima panna (ng serve), siis pealehel on "item-list works" ja item/MUUTUJA pathil "item-edit works"

  • Angular instruction
  • Componentide vahel ei saa andmeid saata.
  • Andmete saatmiseks ühest componendist teise tuleb kasutada Service't.
  • Genereerime uue Service'i käsuga "ng generate service item" (ng g s item)


  • Angular instruction
  • Täidame Service'i mock andmetega: võta siit kood -> pastebin
  • Mine ebay.com ja sisesta midagi otsingusse (nt "xbox")
  • Ava konsool, kleebi sinna pastebin koodijupp ja kopeeri tagastatud esemete massiiv


  • Angular instruction
  • Tee Service sees uus privaatne muutuja ja kleebi kopeeritud kood muutuja väärtuseks


  • Angular instruction
  • Tee valmis sobivad funktsioonid


  • Angular instruction
  • Selleks, et Service-i sisu kasutada, tuleb Service klassi konstruktorisse lisada (Dependency Injection)


  • Angular instruction
  • Service-i seest saame kõik esemed kätte "getItems()"" funktsiooniga, paneme selle funktsiooni tagastuse "items" muutuja sisse


  • Angular instruction
  • for tsükliga kuva kõik tooted
  • ng on Angulari direktiiv (seda võimaldab kasutada CommonsModule, mis on injectitud läbi BrowserModule-i app.module.ts'st)


  • Angular instruction
  • Kui "ng serve" käib, siis on võimalik näha tooteid järgneval kujul:


  • Angular instruction
  • Lisa CSS pastebinist styles.css faili


  • Angular instruction
  • Lisa järgmised klassid HTML faili:


  • Angular instruction
  • Lisa järgmine header ja nüüd peaksid localhost:4200 peal olema nii tooted kui ka menüü


  • Angular instruction
  • Eseme muutmiseks tekita esiteks nupp, mis vahetab URLi, pannes eseme järjekorranumbri muutujana kaasa


  • Angular instruction
  • Lisa muutuja itemId, kuhu sisse tahame saada ID, mis on URL aadressiribas
  • Muutujate kätte saamiseks URL-st on vajalik ActivatedRoute klass @angular/router-st
  • Kutsume selle klassi seest välja muutuja "params", mille külge subscribime
  • Muutuv väärtus on "param", mis on objekt - selle küljest küsime id (me ise panime app-routingusse :id)

  • Angular instruction
  • Teeme üles muutuja "item", kuhu soovime muudetavat eset
  • Konstruktorisse lisame dependency ItemService, kust saame eseme kätte
  • Kutsume muutuja kaudu välja funktsiooni, mis tagastab üksiku eseme

  • Angular instruction
  • Vormi tuleb väärtusi süstida. Selleks peame alustama vormi .ts failist
  • Teeme üles muutuja, kuhu paneme terve vormi sisse
  • ngOnInit sees täidame muutuja

  • Angular instruction
  • Teeme valmis funktsiooni, kui me vormi HTMLis submitime.
  • Kutsume ItemService kaudu välja editItem funktsiooni

  • Angular instruction
  • HTMLi sisse teeme Angulari ReactiveFormi
  • Tavalisele HTMLile on need atribuudid tundmatud, seega peame vastavad Module-d lisama (vt järgmist lehte)

  • Angular instruction
  • Lisame HTMLis eelmiste atribuutide kasutamiseks vajalikud moodulid
  • Angular võib vajada "ng serve" katkestamist ja uuesti käima panemist muutuste sisselugemiseks

  • Angular instruction
  • Täidame vormi input ja label väljadega
  • formControlName seob input väljad vormiga

  • Angular instruction
  • Lisame sobivad CSS klassid

  • Angular instruction
  • Muutmine toimib (kui "muuda" nuppu vajutada ja brauseri tagasi nuppu vajutada)
  • Pärast vormi sisestamist võiks leht meid tagasi esilehele viia
  • Selleks kasutame Router klassi omadusi ja navigateByUrl

  • Angular instruction
  • Iseseisev töö:
  • Tee uus URL path CartComponendile. Kontrolli, kas "cart work" tuleb kui see path sisestada.
  • Lisa menüüs olevale PILDILE routerLink pealehele minemiseks, OSTUKORVILE routerLink äsja lisatud pathile minemiseks
  • Genereeri CartService, sisse tee muutuja, mille väärtus tühi massiiv
  • CartService alla lisa funktsioon, millega on võimalik ühte eset ülalolevasse massiivi lisada
  • ItemList.ts sisse lisa CartService konstruktorisse (+ import)
  • ItemList.ts failis FUNKTSIOON(item) seest kutsu välja CartService-sse tehtud funktsioon
  • ItemList.html lisa nupp, mille sisse seekord routerLink asemel koodilõik (click)="FUNKTSIOON(item)"
  • Cart.html seest tee for-tsükkel esemete välja printimiseks
  • Cart sisse planeeritud CSS klassid on järgmised:

  • Angular instruction