2012-01-10 10 views
12

Utilizzando l'esempio todo app già abusato, diciamo che voglio un elemento con una classe "todo" (statico) e un "è-fatto" di classe (dinamica):In un modello di manubri Ember.js, esiste un modo per avere attributi di classe sia statici che dinamici?

<div {{bindAttr class="todo isDone"}}> 
    Other stuff in here 
</div> 

In questo caso , "isDone" e "todo" sono entrambi attesi come proprietà sul mio oggetto vista, che è quello che voglio per "isDone", ma non per "todo". Attualmente sto lavorando su questo aggiungendo una proprietà "todo" sulla mia vista che è uguale a una stringa "todo" statica. C'è un modo per avere un attributo di classe statico quando si usa bindAttr?

esempio Fiddle: http://jsfiddle.net/nes4H/4/

risposta

23

EDIT :

Abbiamo risolto questo problema in Ember!

Su una generazione da maestro, o dopo 0.9.6 viene rilasciato, ora è possibile farlo:

<div {{bindAttr class="App.foo:a-bound-class :a-static-class"}}></div>


risposta precedente:

È, purtroppo, non può avere nomi di classi sia statici che dinamici quando si utilizza bindAttr.

Suggerisco di utilizzare una o più proprietà calcolate sulla vista per generare nomi di classi sia statiche che dinamiche.

Il supporto di nomi di classi sia statiche che dinamiche sarebbe molto bello, ma il modo in cui funziona bindAttr attualmente non è possibile. bindAttr non sa nulla dell'elemento a cui è collegato durante la compilazione del modello.

+0

Bummer. Grazie. – adamlogic

+1

Aggiornato per riflettere la nuova funzione. – ebryn

+0

Non ancora documentato? O mi mancava? – dechov

3

Non so se si può farlo con bindAttr, ma l'assistente #view non consente di impostare entrambe le classi statiche e quelle dinamiche:

{{#view App.TodoView class="todo" classBinding="isDone"}} 
    inner content 
{{/view}} 
0

In ember 1.10.0, bindAttr è deprecato. È possibile associare direttamente una variabile alla classe di div. qui la variabile colore è legato alla classe di un div:

<div class="{{color}}"></div> 

La linea se aiutante può essere utilizzato anche in questi contesti:

<div class="{{color}} {{if isEnabled 'active' 'disabled'}}"></div> 

http://emberjs.com/blog/2015/02/07/ember-1-10-0-released.html

Problemi correlati