2013-11-27 13 views
6

Vorrei impostare la classe 'attiva' su un collegamento Ember a helper per più di una rotta, dove i percorsi sono non nidificati. ie. se ho un link a route1 vorrei che fosse attivo quando il percorso corrente è route1 o route2.Come impostare il collegamento 'attivo' per più percorsi in EmberJS

qualcosa, come:

{{#link-to 'route1' currentWhen="route1, route2"}}Things-N-Stuff{{/link-to}}

Il mio prossimo scenario ideale è impostata (o trovare) un valore booleano quando il percorso è attivo e poi fare qualcosa di simile:

{{#link-to 'route1' class="isRoute1:active isRoute2:active"}}Not-as-good{{/link-to}} 

ma sono Piuttosto lo raccolgo gratis. Forse c'è un valore booleano di default che non è ancora presente nei documenti ...?


Nessuna risposta. Ho finito per fare questo:

{{#linkTo "things" tagName="li" href=false}} 
    <a {{bindAttr href="view.href"}} {{bindAttr class="isThingsLinkActive:active"}}>Things</a> 
{{/linkTo}} 

E poi in App.ApplicaitonController

isThingsLinkActive: function(){ 
    return ['things.index','thing.index','stuff.index'].contains(this.get('currentPath')); 
}.property('currentPath'), 

Significa ho bisogno di avere qualcosa di simile si assottiglia nel mio controller app per ogni link 'sovraccarico'. Non sarebbe più pulito catturarlo interamente nel modello usando i flag/attributi predefiniti generati da ember? Sono aperto a una soluzione più elegante ... chiunque?

+0

possibile duplicato del [EmberJS impostare più proprietà contemporaneamente] (http://stackoverflow.com/questions/8752805/emberjs-set-multiple-properties-at-once) –

+0

@PaulSweatte Non penso che questi siano correlati. Questa domanda ha a che fare con il link-to helper. L'altro riguarda l'impostazione delle proprietà. Se ho torto e riesci a capire come usare setProperties per raggiungere l'obiettivo, mi piacerebbe vederlo in un jsfiddle o qualcosa del genere. – genkilabs

risposta

10

In base allo link-to#active documentation, è possibile farlo utilizzando uno spazio delimitato "currentWhen", ma ciò richiede Ember 1.8.

{{#link-to 'route1' currentWhen="route1 route2"}}Things-N-Stuff{{/link-to}} 

Questo può anche essere una caratteristica è possibile attivare il build precedenti:

Vedere 'tizzone-routing multi-corrente-se' sul https://github.com/emberjs/ember.js/blob/master/FEATURES.md

In alternativa, è possibile ignorare il link- a helper con uno dei metodi descritti in questo SO messaggio:

Is there a way to pass an array to currentWhen in EmberJS?

+0

Grazie per aver risposto alla discussione di quest'anno. A volte queste funzionalità richiedono un po 'di tempo, ma sono felice di vedere che questo è stato pensato ed è (sarà) supportato. – genkilabs

+0

Ah, in realtà non ho notato la data, ma è ancora una domanda pertinente oggi e sono contento che l'abbiate chiesta;) bene che sia stata indirizzata dalla gente di Ember –

Problemi correlati