2012-10-08 8 views

risposta

7

Si degni di nota ci sono altre librerie angolari eccetto ui-router per eseguire questa operazione. Questo funziona anche:

http://angular-route-segment.com

E 'molto più semplice da usare rispetto ui-router. La configurazione del percorso di esempio è la seguente:

$routeSegmentProvider. 

when('/section1',   's1.home'). 
when('/section1/prefs', 's1.prefs'). 
when('/section1/:id',  's1.itemInfo.overview'). 
when('/section1/:id/edit', 's1.itemInfo.edit'). 
when('/section2',   's2'). 

segment('s1', { 
    templateUrl: 'templates/section1.html', 
    controller: MainCtrl}). 

within(). 

    segment('home', { 
     templateUrl: 'templates/section1/home.html'}). 

    segment('itemInfo', { 
     templateUrl: 'templates/section1/item.html', 
     controller: Section1ItemCtrl, 
     dependencies: ['id']}). 

    within(). 

     segment('overview', { 
      templateUrl: 'templates/section1/item/overview.html'}). 

     segment('edit', { 
      templateUrl: 'templates/section1/item/edit.html'}). 

     up(). 

    segment('prefs', { 
     templateUrl: 'templates/section1/prefs.html'}). 

    up(). 

segment('s2', { 
    templateUrl: 'templates/section2.html', 
    controller: MainCtrl}); 
+0

Nell'esempio, sarebbe mai stato colpito section.html? '/ section1' viene indirizzato al segmento home s1 .., giusto? Se ho ragione, è fuorviante avere un templateUrl definito nel segmento s1. Quindi la domanda ... il 'MainCtrl' per il segmento s1 diventa un controller genitore per' Section1ItemCtrl'? – Suamere

+1

È una gerarchia di viste nidificate. 'home.html' è incluso in' section1.html', e così via. Tutti i controller sono all'interno di una catena di portata prototipo. Puoi vedere questo esempio dal vivo qui: http://angular-route-segment.com/src/example/ – artch