2014-04-04 12 views
10

Sto lavorando a un'applicazione creata con AngularJS che ha due stati diversi:AngularJS transizione verso stato astratto

  1. intro guidata App
  2. pagine App (con un modello di navigazione e vista nested)

voglio 2.

mio stato "app" per default Stato 1 accede alla prima volta che qualcuno l'applicazione, una volta fatto il mago, proseguire per pagine App, State (Stato 2) è uno stato astratto perché ha viste nidificate. Quindi non posso passare a questo stato.

.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

Così transizione verso uno degli stati del bambino? E/o fare qualcosa di simile: $ urlRouterProvider.when ('/ app', '/ app/playlist'); – aet

+0

@aet Ho provato questo, ma dal momento che lo stato della mia app utilizza un modello di menu laterale, non è stato caricato direttamente nel menu app/playlist. –

+0

@MarkK ha ottenuto lo stesso problema con qualsiasi soluzione fissa per questo. Sto cercando di integrare Ionic Intro Tutorial con Splashscreen (http://codepen.io/gwhickman/pen/zpDFG/) con l'applicazione del menu laterale che risolve il problema. –

risposta

13

Ho lo stesso problema con voi, qui è altro post su stato astratto: angularjs ui-router default child state and ui-sref

Lo ha fatto chiaramente spiegare perché non si è in grado di accedere stato direttamente astratto

E 'po' In ritardo per rispondere a questo post, ma spero che possa essere d'aiuto.

(Btw, questo dovrebbe essere un commento)

3

Ho aggiunto di servizio $ posizione al controller della pagina "intro" e utilizzare il seguente per il transito a App stato che funziona per me.

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

Il menu.html viene caricato e spostato nelle playlist.

0

In un servizio:

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

o in un modello ($state devono essere disponibili nella $scope locale o globale):

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