1

他の 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を使用して競合状態を作成したくありません。

4

1 に答える 1

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
});
于 2012-07-30T20:06:22.180 に答える