Sto utilizzando Twitter Bootstrap per la navigazione nella mia app Ember.js. Bootstrap utilizza una classe active
nel tag li
che avvolge i collegamenti di navigazione, anziché impostare la classe active
sul collegamento stesso.Come si associa alla classe attiva di un collegamento utilizzando il nuovo router Ember?
Il nuovo helperdi Ember.js imposta una classe active
sul collegamento ma (per quanto posso vedere) non offre alcun aggancio a tale proprietà.
In questo momento, sto usando questo approccio brutta:
{{#linkTo "inbox" tagName="li"}}
<a {{bindAttr href="view.href"}}>Inbox</a>
{{/linkTo}}
Questo stamperà:
<li class="active" href="/inbox"><a href="/inbox">Inbox</a></li>
Che è quello che voglio, ma non è valido HTML.
Ho anche provato ad associare la proprietà active
di LinkView generata dalla vista genitore, ma se si esegue questa operazione, la vista genitore verrà sottoposta a rendering due volte prima che venga inserita e che generi un errore.
Oltre a ricreare manualmente la logica utilizzata internamente dall'assistente linkTo
per assegnare la classe active
al collegamento, esiste un modo migliore per ottenere questo effetto?
A causa di una modifica recente, questo non funziona nemmeno più (dato che l'helper linkTo non imposta più il contesto della vista alla sua vista). – Bastes
Per chi si imbatte in questo, ho trovato queste risposte più utili: http://stackoverflow.com/questions/11628489/emberjs-how-to-mark-active-menu-item-using-router-infrastructure – woz
Found una soluzione migliore [qui] (http://stackoverflow.com/questions/14412073/assigning-active-class-to-selected-list-item-in-emberjs). – Volox