/ / Ember.js Ember.View evento didRender - javascript, jquery, coffeescript, ember.js

Ember.js Ember.View evento didRender - javascript, jquery, coffeescript, ember.js

Sto creando un'app ember.js che si collega anche ad altri plugin jQuery. Ho alcuni campi modulo su cui devo chiamare un plugin jQuery una volta che la vista è resa. Ho provato ad agganciarmi didInsertElement, ma a quanto pare i valori per i campi del modulo associato non sono assegnati al momento dell'inserimento. Esiste un callback per quando viene eseguito il rendering completo della vista o quando i bind sono inizializzati?

vale a dire.

MyView: Ember.View.extend
#Boaring normal stuff here

didInsertElement: ->
$(".some-class").doSomething()

e

{{view Ember.TextField valueBinding="someField" class="some-class"}}

Non funziona perché i valori di .some-class non sono ancora stati impostati.

Non voglio usare a setTimeout e creare una condizione di gara.

risposte:

4 per risposta № 1

Bene, quello che sta succedendo è che l'associazione testValue viene aggiornata dopo l'inserimento della vista. Quindi quello che puoi fare è chiamare $(".silly-field").doSomethingSilly(); dentro un Ember.run.next() funzione.

Come scritto nei documenti:

Ember.run(myContext, function(){
// code to be executed in the next RunLoop, which will be scheduled after the current one
});