1

テンプレートで気になるdomノードがいつレンダリングされるかを知るにはどうすればよいですか。jQueryまたはtemplate.findで選択して、変更するか、コールバックを添付できるようにしたいですか?Template.templateName.renderedを使用していますが、ヒットまたはミスです。テンプレートがレンダリングされていても、必要な要素がdomに挿入されていない場合があります。template.rendered内で2〜3秒間setTimeoutを設定してから要素を選択しようとすると、ほとんどの場合そこにありますが、これは明らかに問題です。

Template.templateName.rendered = ->
    # This is a kludge!
    wait 2000, =>
        $(window).resize =>
            # Neither of these selectors find anything without the wait
            $iframe = $(this.find('#embed-html iframe'))
            width = $('#embed-html').innerWidth()
            resizeIframe($iframe, width)
        $(window).resize()
4

1 に答える 1

1

イベントはこれrenderedを行う正しい方法であり、テンプレートが DOM に挿入されるたびに発生します。iframeなしでこれを試しましたか?iframe が混乱している可能性があります。その場合は、ローカル ドキュメント ソースで iframe をテストして、iframe の読み込み速度がfindメソッドが要素を返す方法に影響しているかどうかを確認してください。

DOM と対話する前に何かを待つ必要は絶対にないはずなので、奇妙なことが起こっています。

于 2013-01-21T02:38:48.010 に答える