2014-04-13 8 views
6

ho uno stato annidato come:animazione angolare interfaccia utente del router sulla vista padre

.state('contacts', { 
    url: '/contacts', 
    views: { 
     '': { 
      templateURL: 'views/contacts.html', 
      contacts: 'ContactsCtrl' 
     } 
    } 
}) 
.state('contacts.view', { 
    url: '/contacts/:name', 
    views: { 
     '': { 
      templateURL: 'views/contacts-details.html' 
     } 
    } 
}); 

contacts.html

<section id="contacts-list"> 
    <h1>This is a list of contacts</div> 
    <article class="contacts" ng-repeat="contact in contacts">(...)</article> 
    <ui-view/> 
</section> 

contatti-view.html

<h2>{{ contact.name }}</h2> 

Sono in grado per animare i contatti-view.html ng-enter e ng-leave, ma quello che volevo era animare il contenitore # -elenco contatti per fare una diapositiva all'effetto giusto .

Quale sarebbe il modo corretto per avvicinarsi a questo?

Grazie

+0

Quando desideri che l'animazione si verifichi? – Wawy

+0

quando viene inserito lo stato figlio ma voglio attivare l'animazione sul genitore. Ha senso? – jribeiro

risposta

4

si potrebbe provare:

Sostituire contatti-view.html con:

<section id="contacts-list"> 
    <h1>This is a list of contacts</div> 
    <article class="contacts" ng-repeat="contact in contacts">(...)</article> 
    <h2>{{ contact.name }}</h2> 
</section> 

e nel tuo contacts.html scrittura:

<section id="contacts-list" ui-view> 
    <h1>This is a list of contacts</div> 
    <article class="contacts" ng-repeat="contact in contacts">(...)</article> 
</section> 

che dovrebbe fare il trucco se non ti dispiace ripetere il codice nei tuoi modelli.

Edit:

ora capisco che cosa si vuole fare un po 'di più:

Che dire:

<section id="contacts-list" ng-class="{ detail: $state.is('contacts.view')> 
    <h1>This is a list of contacts</div> 
    <article class="contacts" ng-repeat="contact in contacts">(...)</article> 
    <ui-view /> 
</section> 

e quindi si aggiunge l'add/rimuovere le classi di animazione alla classe dettagli . Questo dovrebbe funzionare senza necessità di ripetizione o aggiunta/rimozione di elementi non necessari al DOM.

+0

Grazie Wawy. Però non sembra un buon approccio. Oltre a non essere mantenibile, ha un sovrappeso in termini di prestazioni poiché duplica le chiamate, tra le altre cose. – jribeiro

+0

Lo so, ma se vuoi animare lo stato genitore dovrai ridisegnare quegli elementi sul DOM che significheranno duplicare le chiamate. – Wawy

+0

Beh, potresti ascoltare i cambiamenti di stato tra le altre cose ... Volevo solo sapere quale era considerata la migliore pratica, perché penso che questo sia piuttosto interessante per il responsive design, ad esempio. – jribeiro