Ho questi routes:
.account
/: email .account.home
/: email .account.personal
/: email / personal .account.settings
/: email / impostazioni .account
è uno stato astratto e .account.home
è lo stato predefinito che dovrebbe andare su.
Ora se ho questo collegamento, con un ui-sref-active
per aggiungere una class quando viene navigato, farò qualcosa come
<a ui-sref-active='active' ui-sref='.account.home({email: account.email})'></a>
l'elemento giusto è impostato con una class active
quando viene cliccato (che è stato previsto), ma se ho cliccato su .account.personal
viene rimosso perché non è figlio di .account.home
ma un figlio di .account
Come posso impostare l' ui-sref-active
per rimanere attivo al <a></a>
sopra ho anche selezionato un path diverso da esso? Ma non posso collegarlo allo stato astratto poiché non possiamo navigare in uno stato astratto?
devi usare ui-sref-active
come la ng-class
<a ui-sref-active='{"active": ".account({email: account.email})" }' ui-sref='.account.home({email: account.email})' >
la parte importnte è questa:
{"active": ".account({email: account.email})" }
che dice a ui-router di impostare la class active
quando lo stato attuale è .account({email: account.email})
quindi sta ora esaminando lo stato astratto .account
e non .account.home