Mam aplikację z różnymi ekranami . Każdy ekran ma przypisany adres URL, taki jak #
, mails
, contacts
i tak dalej.Jak skonfigurować zagnieżdżone widoki w AngularJS?
W moim głównym pliku HTML mam element ng-view
, który aktualizuje się zgodnie z trasą wybraną przez użytkownika. Jak na razie dobrze.
Niektóre z tych ekranów mają podrzędną nawigację. Np., #mails
ma skrzynkę odbiorczą i folder wysłany. Przedstawiają się oni w dwóch kolumnach: pod-nawigacji po lewej stronie, w korespondencji z odpowiedniego folderu po prawej stronie.
Po przejściu do #mails
, powinien skierować cię do #mails/inbox
, tak, że w zasadzie Skrzynka to domyślny widok dla sub-maili.
Jak mogę to ustawić?
Jedyne podejście, jakie mogę obecnie myśleć (jestem całkiem nowy w AngularJS, a więc wybacz mi, jeśli to pytanie jest trochę naiwne) to mieć dwa widoki, jeden dla #mails/inbox
, a drugi dla #mails/sent
.
Po wybraniu trasy widoki te są ładowane. Po wybraniu #mails
po prostu przekierowuje cię do #mails/inbox
.
Oznacza to jednak, że oba widoki muszą korzystać z pod-nawigacji w postaci ng-include
. Jakoś to wydaje mi się złe.
Najbardziej chciałbym mieć widoki zagnieżdżone: górna z nich przełącza się między ekranami, takimi jak e-maile, kontakty itd., A dolna zmienia się między podprzeglądami, takimi jak skrzynka odbiorcza, wysłana itd. .
Jak rozwiązać ten problem?
O ile mi wiadomo, nie ma alternatywy do korzystania ng obejmują już teraz. To może się zmienić w przyszłości. – finishingmove
Zobacz [AngularJS - Complex nesting partials and templates] (http://stackoverflow.com/questions/12863663/angularjs-complex-nesting-of-partials-and-templates) i sprawdź [Angular ui-route ] (https://github.com/angular-ui/ui-router). – Stewie
Tak, @Stewie ma rację. 'ng-swith' jest właściwym podejściem dla teraz –