Când se pornește aplicația, router-ul mută URL-ul curent pe rute. pe care le-ați definit. Rutele, la rândul lor, sunt responsabile de afișarea șabloanelor, de încărcarea datelor și de stabilirea stării aplicației.
Pentru a determina ruta, executați comanda:
Creează un fișier de rutare în app / routes / route-name.js. un șablon pentru ruta către aplicație / șabloane / route-name.hbs și un fișier de testare unitate în teste / unitate / rute / route-name-test.js. De asemenea, această comandă adaugă o rutare la router.
Trasee de bază
Pentru a determina corespondența adresei URL, trebuie să apelați metoda map () din ruterul aplicației. Când apelați harta (), trebuie să treceți funcția. Va fi chemat cu asta. care este atribuit obiectului. Puteți utiliza acest obiect pentru a crea rute.
Acum, că vizita utilizatorului / despre. Ember afișează despre. Când vizitați / favs, Ember afișează șablonul de favorite.
Nu puteți specifica o cale dacă are același nume ca traseul. În acest caz, exemplul anterior va arăta astfel:
În interiorul șabloanelor puteți utiliza # 123; # 123; link-to # 125; # 125 ;. pentru a naviga între rute. Pentru a face acest lucru, trebuie să utilizați numele pe care l-ați utilizat pentru metoda rutei.
ajutor # 123; # 123; link-ul la # 125; # 125; va adăuga, de asemenea, clasa activă la linkul care indică ruta activă curentă.
În numele rutelor care conțin mai multe cuvinte, cuvintele sunt împărțite condiționat printr-un semn de bord, de exemplu:
Traseul de mai sus, în mod implicit, va utiliza postarea de blog-post.js. template blog-post.hbs și să poarte numele blog-post în orice ajutor # 123; # 123; link-ul la # 125; # 125; .
O ruta de mai multe cuvinte care nu urmeaza acest acord, de exemplu:
În mod implicit, acesta va utiliza, de asemenea, rutina de postare blog-post.js. template blog-post.hbs. dar să poarte numele blog_post în orice ajutor # 123; # 123; link-ul la # 125; # 125; .
Rutele născute
În astfel de cazuri, puteți utiliza rute imbricate pentru a afișa un șablon în interiorul celuilalt.
Puteți defini șabloane imbricate prin trecerea acestui callback:
Pentru a genera ruta imbricată deasupra, executați comanda:
Apoi adăugați ajutorul # 123; # 123; ieșire # 125; # 125; în șablon pentru a indica unde doriți să afișați șablonul atașat:
Traseul aplicației
Trecerea la ruta aplicației are loc atunci când aplicația este încărcată pentru prima dată. Ca orice altă rută, în mod implicit, se va încărca un șablon cu același nume (în acest caz, aplicația). Aici trebuie să plasați titlul, partea de jos a paginii și orice alte elemente decorative. Toate celelalte rute vor afișa șabloanele lor # 123; # 123; ieșire # 125; # 125; template application.hbs.
Acest traseu face parte din orice aplicație. Deci, nu trebuie să specificați în app / router.js.
Rute INDEX
La fiecare nivel al atașamentului (inclusiv cel de sus), Ember.js oferă în mod automat un index numit traseu / cale. Pentru a vedea când apare un nou nivel de cuibărire, uitați-vă la router: ori de câte ori vedeți funcția. puteți sărbători un nou nivel.
De exemplu, dacă scrieți un router simplu în acest fel:
Echivalentul său va fi:
Șablonul index este afișat în # 123; # 123; ieșire # 125; # 125; aplicație șablon. Dacă utilizatorul merge la / favorite. Ember.js va înlocui indexul șablonului cu șablonul favorit.
Un router imbricat ca acesta:
Segmente dinamice
Unul dintre scopurile traseului este de a încărca modelul.
Introduceți segmente dinamice.
Un segment dinamic face parte din adresa URL care începe cu. urmat de un identificator.
Dacă utilizatorul merge la / post / 5. ruta va avea un identificator post_id cu o cifră de 5. care utilizează pentru a încărca publicația dorită. În Ember, există o convenție de numire în stilul: model-name_id din două motive. În primul rând, dacă urmați acordul, rutele implicite știu cum să returnați modelul de care aveți nevoie. În al doilea rând, parametrul este un obiect și poate avea o valoare asociată cheii. Dacă scrieți codul de acest fel, acesta nu va funcționa corect:
Dar dacă scrieți așa, codul va funcționa corect:
În capitolul următor, "Specificația modelului de traseu". veți afla mai multe despre cum să încărcați un model.
Căi rutiere generalizate / wildcard
Puteți defini rute cu metacaractere care se vor potrivi mai multor segmente de adrese URL. Acest lucru poate fi folosit dacă, de exemplu, aveți nevoie de o "capcană de traseu". Este util dacă utilizatorul introduce o adresă URL incorectă, pe care aplicația nu o acceptă.