2014-03-04 17 views
42

Ich benutze angular UI-Router. Ich habe nach dem in meiner Route ConfigAngular UI-Router mehrere Ansichten

.config(function config($stateProvider) { 
    $stateProvider.state('newsFeedView', { 
     url: '/newsFeed', 
     controller: 'newsFeedController', 
     templateUrl: '../src/app/bulletinBoard/views/newsFeed.part.html', 
     data: { 
     pageTitle: 'News Feed' 
     } 
    }) 
    .state('tradeFeedView', { 
     url: '/tradeFeed', 
     controller: 'tradeFeedController', 
     templateUrl: '../src/app/bulletinBoard/views/tradeFeed.part.html', 
     data: { 
     pageTitle: 'Trade Feed' 
     } 
    }) 
    .state('bulletinBoard', { 
     url: '/bulletinBoard', 
     views: { 
     'tradeFeed': { 
      url: "", 
      controller: 'tradeFeedController', 
      templateUrl: '../src/app/bulletinBoard/views/tradeFeed.part.html' 
     }, 
     'newsFeed': { 
      url: "", 
      controller: 'newsFeedController', 
      templateUrl: '../src/app/bulletinBoard/views/newsFeed.part.html' 
     } 
     }, 
     templateUrl: '../src/app/bulletinBoard/views/bulletinBoard.part.html' 
    }); 
}) 

In meiner Index-Seite Ich rufe nur die Ansicht mit:

<div class="container" ui-view></div> 

In My bulletinBoard.html i eine verschachtelte Ansicht haben wollen:

<div ui-view="tradeFeed"></div> 
<div ui-view="newsFeed"></div> 

Für die/newsFeed Seite und die/tradeFeed Seiten funktioniert das perfekt, aber für das Bulletin Board kann ich nichts auf der Seite sehen. Wo gehe ich falsch?

Antwort

107

Ich finde das Beispiel auf dem offiziellen GitHub Wiki als sehr unintuitiv. Hier ist eine bessere:

https://scotch.io/tutorials/angular-routing-using-ui-router

Zum Beispiel:

... 

.state('bulletinBoard', { 
    url: '/bulletinBoard', 
    views: { 

     // the main template will be placed here (relatively named) 
     '': { templateUrl: '../src/app/bulletinBoard/views/bulletinBoard.part.html' }, 

     // the child views will be defined here (absolutely named) 
     '[email protected]': { template: ..... }, 

     // another child view 
     '[email protected]': { 
      templateUrl: ...... 
     } 
    } 

}); 

Die Syntax der einzelnen Attribute Ansicht [email protected] sein.

+6

Tutorial-Link war genau das, was ich suchte. Vielen Dank! – rcheuk

+2

Viel besser Beispiel als https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views. Dies vereinfachte meine Konfiguration von abstract state w/child, was zu sein scheint, was das GitHub Wiki vorschlägt. Vielen Dank! – davidfmatheson

+0

Perfekt, ich verwende dies, um zwei Arten von Ansichten zu haben (single - denke keine Kopfzeile, nur ganze Seite Login - Seiten und Inhalt - Standard - Seiten mit Kopf - und Fußzeilen). ** FRAGE: ** Ist das ein Hacky-Setup oder eine WAD-Methode? –

Verwandte Themen