2014-04-04 17 views
10

pracuję nad aplikacja zbudowana z angularjs że ma dwa różne stany:angularjs przejście do abstrakcyjnego stanu

  1. App kreatora Intro
  2. stron aplikacji (z szablonu nawigacyjnego i zagnieżdżonych wyświetleń)

Chcę domyślnie państwa 1 pierwszy raz ktoś dostęp do aplikacji, raz zrobić kreatora, przejdź do strony aplikacji, State 2.

My "aPP" (stan 2) stan abstrakcyjny, ponieważ ma zagnieżdżone widoki. Nie mogę przejść do tego stanu.

.config(function($stateProvider, $urlRouterProvider) { 
$stateProvider 

    .state('intro', { 
    url: '/', 
    templateUrl: 'templates/intro.html', 
    controller: 'IntroCtrl' 
    }) 

    .state('app', { 
    url: '/app', 
    abstract: true, 
    templateUrl: 'templates/menu.html', 
    controller: 'AppCtrl' 
    }) 

    .state('app.playlists', { 
    url: "/playlists", 
    views: { 
     'menuContent' :{ 
     templateUrl: "templates/playlists.html", 
     controller: 'PlaylistsCtrl' 
     } 
    } 
    }); 

    $urlRouterProvider.otherwise("/"); 

}) 
+0

Więc przejście do jednego z państw dziecka? I/lub zrób coś takiego: $ urlRouterProvider.when ('/ app', '/ app/playlists'); – aet

+0

@ Próbowałem tego, ale ponieważ stan mojej aplikacji używa szablonu menu bocznego, przejście bezpośrednio do aplikacji/list odtwarzania nie zostało załadowane w menu. –

+0

@MarkK dostał ten sam problem dla każdego rozwiązania stałego. Próbuję zintegrować Ionic Intro Tutorial z Splashscreen (http://codepen.io/gwhickman/pen/zpDFG/) z aplikacją menu bocznego. –

Odpowiedz

13

Mam ten sam problem z wami, tu jest inny post o stanie streszczenie: angularjs ui-router default child state and ui-sref

To było wyraźnie wyjaśnić, dlaczego nie jesteś w stanie uzyskać dostęp członkowskiego bezpośrednio abstrakcyjny

To nieco spóźniony, aby odpowiedzieć na to stanowisko, ale mam nadzieję, że to pomoże.

(Btw, powinno to być komentarz)

3

dodałem serwis $ lokalizacja do kontrolera strony „intro” i używać następujących do tranzytu do app stan, który pracuje dla mnie.

$location.path('app/playlists'); 

Plik menu.html jest ładowany i nawigowany do list odtwarzania.

0

w serwisie:

$location.path(
    $state.href('app.some.abstract.state', { some: 'params' }) 
); 

Albo w szablonie ($state muszą być dostępne w lokalnej lub globalnej $scope):

<a ng-href="{{$state.href('app.some.abstract.state', { some: 'params' })}}">...</a>