In un modello di Ember.js Manubrio, c'è un modo per avere sia statici e dinamici gli attributi di classe?

StackOverflow https://stackoverflow.com/questions/8807783

  •  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/

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top