Professional Documents
Culture Documents
Frontend 5
Frontend 5
Metoda forRoute kao ulazni parametar uzima niz objekata od kojih svaki sadrži putanju
(path) i komponentu. Putanja je naziv rutera, a komponenta je naziv klase, tj. komponente
koja se prikazuje za tu putanju. Ta komponenta je npr.
Unutar ovakvih šablona se mogu koristiti Angular podaci koji su definisan u samoj komponent
klasi:
@Component({
// Other component properties removed
template: `
<h1>Hey guys!</h1>
<p>{{ myObject.gender }}</p>
`,
})
ili:
template: `
<h1>Hey guys!</h1>
<ul>
<li *ngIf="myArr; else otherTmpl">Yeah, I exist.</li>
</ul>
@Component({
selector: 'app-new-cmp',
templateUrl: './new-cmp.component.html',
styleUrls: ['./new-cmp.component.css']
})
export class NewCmpComponent implements OnInit {
newcomponent = "Entered in new component created";
constructor() {}
ngOnInit() { }
}
čime se dobija i automatski generisan HTML šablon ako se koristi Angular CLI:
<p>
{{newcomponent}}
</p>
<p>
new-cmp works!
</p>
<h1>Custom Pipe</h1>
<b>Square root of 25 is: {{25 | sqrt}}</b><br/>
<b>Square root of 729 is: {{729 | sqrt}}</b>
<br />
<br />
<br />
<a routerLink = "new-cmp">New component</a>
<br />
<br/>
<router-outlet></router-outlet>
Preko routerLink atributa u anchor elementu definišemo koja komponenta će biti prikazana
unutar router-outlet elementa kada korisnik klikne na taj anchor (URL link).
Primećujemo da postoji sqrt pipe, koji nije predefinisan u Angular-u, već se radi o custom pipe,
koji je definisan u app.sqrt fajlu:
U realnom slučaju, potrebno je definisati i podrazumevanu putanju za sve druge slučajeve koji
se ne poklapaju sa predefinisanim rutama (nepostojeći URL), što se postiže sa:
const appRoutes: Routes = [
{ path: 'crisis-center', component: CrisisListComponent },
{ path: 'hero/:id', component: HeroDetailComponent },
{
path: 'heroes',
component: HeroListComponent,
data: { title: 'Heroes List' }
},
{ path: '',
redirectTo: '/heroes',
pathMatch: 'full'
},
{ path: '**', component: PageNotFoundComponent }
];
Ovde je dodato još putanja kako bi se prikazale neke dodatne mogućnosti rutera. Na primer,
putanja „her/:id“ sadrži dodatni parametar koji će biti prosleđen komponenti koja se
prikazuje. Takođe, data atribut se koristi za čuvanje određenih podataka za tu rutu, na primer
to mogu biti naslovi, breadcrumb (vrsta navigacije) tekst i drugih statičkih podataka. Ako je
putanja prazna, tj. URL je jednak adresi aplikacije, mora se prikazati neka komponenta, u ovom
slučaju, recimo, hoćemo da se prikaže lista heroja, pa umesto da navedemo
HeroeListComponent, vršimo prosleđivanje na tu putanju pomoću redirectTo atributa. Na
kraju, prazna putanja, označena sa „**“, označava putanju koju će ruter odabrati u slučaju da
se zadati URL (od strane korisnika preko adresnog polјa ili preko nekog linka iz same aplikacije)
ne poklapa sa putanjom nijedne druge rute.
Redosled zadatih ruta je bitan, jer se pretraživanje putanja vrši zadatim redosledom ruta.