Professional Documents
Culture Documents
Uputstvo v4
Uputstvo v4
Toolbar komponenta
Sidebar komponenta
FlexLayout (fxFlex direktiva)
Postoje tri globalne navigacione komponente - meni, toolbar i sidenav (navigaciona traka koja se
obično pozicionira na levoj stranoi prikaza). Detalji komponenti se mogu naći na
https://material.angular.io/components/categories/nav. Pogledati pojedinačne komponente. Svaka
komponenta je opisana u tri sekcije - overview (najdetaljnija i ona koju ćete najčešće koristiti da se
upoznate sa načinom korišćenja komponente), api i examples.
U našem aplikaciji ćemo kombinovati dve komponente u kontekstu dizajna koji se prilagođava
doimenzijama displeja (responsive).
1. Otvoriti projekat u razvojnom okruženju i pokrenuti razvojni server (ukoliko nije pokrenut).
Sidenav će biti korišćen za globalnu navigaciju i zbog toga je dobro smestiti je u korenu
komponentu (app.component.html):
Napomena: potrebno je ukloniti ili komentarisati postojeći sadržaj templejta korene komponente da
bi izbegli gomilanje elemenata na stranici.
Dakle, u sadržaj koji će se prikazivati smeštamo odredišta ruta, tj. tag u kojem se one prikazuju.
Sačuvati promene i pokrenuti stranicu. Komponenta će biti prikazana i ukoliko kliknete bilo gde u
okviru stranice sidenav će nestati. Komponenta se mora dalje konfigurisati.
Da bi definisali njeno pravilno ponašanje, potrebno je dodati sledeću logiku u Sidenav komponentu
(u okviru app.component.html):
Kreirali smo lokalnu promenjivu čija je vrednost konkretna Sidenav komponenta (#sidenav) u
okviru koje je promennjiva deklarisana. Zatim na događaj klika dugmeta (click) pozivamo ugrađenu
metodu komponente tako što pristupamo promenjivoj (sidenav.toogle()). Metoda prikazuje
komponentu ako je zatvorena i obrnuto.
Pogodnost ovakvog načina rada je što se interaktivna logika može definisati na jednom mestu
(html templejt komponente). Složenije obrade mogu zahtevati logiku u pozadinskom kodu
(typescript klasa komponente).
Toolbar ćemo dodati u okviru sadržaja Sidenav komponente i modifikovati sadržaj kao:
Dakle, dodata je Toolbar komponenta kao sadržaj Sidenav komponente. Komponenta sadrži
dugme koje smo prethodno kreirali i mesto za logo (oboje smešteni u div radi lakšeg stilizovanja).
Centralni deo Toolbar-a su linkovi ka našim komponentama koji odgovaraju putanjama ruta
(moguće je koristiti i standardni href atribut umesto routerLink).
Sačuvati promene i pogledati stranicu root komponente. Klikom na dugme "Toogle sidenav"
toolbar se naizmenično prikazuje i sakriva. U okviru toolbar-a su linkovi ka našim komponentama.
Sidenav i toolbar su uvek vidljivi u aplikaciji kao globalna navigacija i zbog toga su deo templejta
root komponente (app.component.html).
Sada ćemo stilizovati Toolbar komponentu. Na primer, dodati ikonu umesto dugmeta za otvaranje
Sidenav komponente, sliku za Logo i pristojniji izgled linkova ka komponentama.
Ikonu dodajemo slično kao u prethodnim lekcijama, kao modifikacija dugmeta u templejtu korene
komponente:
Sačuvati promene i pogledati stranice. Ikona menija je dodata (simbol je automatski identifikovan
na osnovu naziva - menu). Kod korišćenja Angular Material ikone voditi računa i malim i velikim
slovima. Na stranici https://material.io/tools/icons/ i naći ikonu pretragom sa "menu".
Sada naš logo pretvaramo u link na home komponentu, tj. welcome komponentu koju smo kreirali:
Ovde upoznajemo novu direktivu - fxFlex. Ova direktiva specificira automatsku promenu veličine
elementa deteta u okviru roditelja. U našem slučaju toolbar komponenta (<mat-toolbar>) je roditelj
koji sadrži tri deteta - div za ikonu, div za logo i div za linkove ka komponentama aplikacije.
Podrazumevana veličina div elemenata je takva da se njihove dimenzije prilagođavaju
dimenzijama elemenata koje sadrže, tj, dece. Koordinatni početak prikaza je uvek gornji desni
ugao ekrana ili roditelja, i zbog toga su div elementi poređani sa leva na desno u okviru toolbar-a.
Da bismo razdvojili grupu linkova od ikone za sidenav i logo-a i smestili je na desnu stranu toolbar-
a moramo zadati širinu div elementa koji sadrži linkove tako da on zauzima preostali prostor do
desne ivice ekrana. Ovo se može uraditi u datoteci sa stilovima, ali pogodniji način je korišćenje
fxFlex direktive za automatsku i dinamičku promenu veličine elementa u okviru kontejnera.
Zadatak: Samostalno dodati fxFlex direktive u preostala dva taga (prvi koji sadrži ikonu i drugi koji
sadrži logo), menjati vrednosti (na primer, kao procente ili piksele) i proveravati kako se menja
izgled toolbar komponente stranica u smislu razmeštaja elemenata.