In un modello di Ember.js Manubrio, c'è un modo per avere sia statici e dinamici gli attributi di classe?
-
26-10-2019 - |
Domanda
Utilizzando l'esempio todo app già abusato, diciamo che voglio un elemento con un "todo" di classe (statica) e un "è-fatto" di classe (dinamica):
<div {{bindAttr class="todo isDone"}}>
Other stuff in here
</div>
In questo caso, "isDone" e "todo" sono entrambi dovrebbe essere immobili in mio punto di vista dell'oggetto, che è quello che voglio per "isDone", ma non per "todo". Al momento sto lavorando intorno a questo con l'aggiunta di una proprietà "todo", a mio punto di vista che è uguale ad una "todo" stringa statica. C'è un modo per avere un attributo di classe statica quando si utilizza bindAttr?
Fiddle esempio: http://jsfiddle.net/nes4H/4/
Soluzione
Modifica
Abbiamo risolto questo 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 entrambi i nomi di classi statiche e dinamiche quando si utilizza bindAttr
.
Io suggerisco di usare una o più proprietà calcolate sulla immagine per l'uscita entrambi i nomi statici e di classe dinamica.
supporta sia statici e dinamici i nomi di classe sarebbe molto bello, ma il modo in cui bindAttr
opere attualmente, non è possibile. bindAttr
non sa nulla circa l'elemento è di essere attaccato al durante la compilazione del modello.
Altri suggerimenti
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}}
Master in Ember, un cambiamento è stato impegnato oggi per consentire classi statiche da precisare entro bindAttr
anteponendo due punti.
https://github.com/emberjs/ember.js/commit/ce385e3294be019215c555511c7f393aebc02e41
Questo potrebbe cambiare prima della prossima release, naturalmente, ma questo è un problema che il core team Ember vuole risolvere.
In brace 1.10.0, bindAttr è deprecato. Potete direttamente legata una variabile per 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 / brace-1-10-0-released.html