我构建了一个与其他jQuery插件相关联的ember.js应用程序。我有一些表单字段,我需要在呈现视图时调用jQuery插件。我试过挂钩didInsertElement
,但显然绑定表单字段的值在插入时没有分配。当视图完全呈现或绑定初始化时是否存在回调?
即
MyView: Ember.View.extend
#Boaring normal stuff here
didInsertElement: ->
$('.some-class').doSomething()
和
{{view Ember.TextField valueBinding="someField" class="some-class"}}
不起作用,因为.some-class
的值尚未设置。
我不想使用setTimeout
并创建竞争条件。
答案 0 :(得分:4)
嗯,发生了什么,是在插入视图后更新了testValue绑定。因此,您可以在$('.silly-field').doSomethingSilly();
函数内调用Ember.run.next()
。
正如文档中所写:
Ember.run(myContext, function(){
// code to be executed in the next RunLoop, which will be scheduled after the current one
});