Emberjs在DOM渲染之前触发了didInsertElement,仅适用于setTimeout 0

时间:2014-09-17 09:45:04

标签: ember.js ember.js-view

我有一个视图,将其模板呈现为命名插座。我使用didInsertElement钩子,并在那里等待DOM完成的afterRender计划。但是,当我尝试访问此渲染过程的结果时,这些元素是未知的。如果我在时间0的setTimeout中包装访问(以便它在下一个事件循环周期中运行),它就可以工作。

App.PlaceView = Ember.View.extend({
    didInsertElement: function () {
        Ember.run.scheduleOnce('afterRender', this, function () {
            // This works
            setTimeout(
                function () {
                    // access elements
                },
                0
            );

            // Access elements here does not work
        });
    }
});

我做错了什么?

0 个答案:

没有答案