2014-10-04 13 views
10

Ho giocato con UI-Router poiché ngRoute non copre proprio ciò di cui avevo bisogno in base ai miei layout diversi che richiedevano più viste nidificate. Quello che non riesco a capire in UI-Router è come caricare viste nidificate predefinite senza dover fare clic su un collegamento. Ho creato un esempio grezzo di cosa intendo in uno plunkerUI-Router Come caricare automaticamente una vista nidificata all'interno della vista genitore come predefinita

Essenzialmente ci sono due percorsi principali all'interno di ciascuno, c'è un contenitore che ospita viste nidificate. Voglio caricare una vista predefinita in loro senza dover fare clic su un ui-sref.

<h1>Auth Panel</h1> <-- main route 1 
Just a container for login/forgot/reset 
<hr/> 
<a ui-sref="auth.login">Show Login</a><br> <-- can click to load nested view, but want to autoload 
How to show automatically /login within the panel <br> 
without having to click show login? 
<div ui-view></div> <-- child to autoload with /login 

Grazie

+3

https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-set-up-a-defaultindex-child-state –

+0

Grazie, che è grande . Non so come mi sia mancato. – mtpultz

risposta

12

sul tuo stato genitore aggiungere un param

.state('parentState', { 
//... 
    params: { 
     autoActivateChild: 'parentState.childState' 
    } 
//... 
}) 

e aggiungi a qualche

$rootScope.$on('$stateChangeSuccess', function(event, toState){ 
    var aac; 
    if(aac = toState && toState.params && toState.params.autoActivateChild){ 
     $state.go(aac); 
    } 
}); 
+0

Dove è definito $ stato? – HappyCoder

+0

Soluzione fantastica. Pulito. – Tyguy7

+0

HappyCoder, deve essere iniettato ovunque ci sia il gestore di eventi (secondo blocco di codice). Probabilmente nella definizione del modulo –

-1

Se si voleva passare automaticamente a uno stato infantile di default quando la carichi genitore, puoi attivare un clic su quel particolare ui-sref nel tuo controllo ler.

angular.element("#childElementId").trigger('click'); 
+0

Si prega di non gettare le persone dal percorso angolare ... Imparare lo strumento prima di dare qualche consiglio. –

Problemi correlati