1

我试图了解 connectOutlet 方法,并且当从 connectOutet 返回的视图实际插入 DOM 时。

在 connectOutlet 中创建的视图使 connectOutlet 处于 preRender 状态。

connectOutlet: function(name, context) {
  // method body
    view = this.createOutletView(outletName, viewClass);

    if (controller) { set(view, 'controller', controller); }
    set(this, outletName, view);

    return view;
}

我还没有追踪到视图插入到 Dom 的位置或时间以及视图转换到 inDom 状态的时间。

我怀疑运行循环正在发挥作用,并且在当前运行循环完成后它会转换。

任何人都可以对此有所了解吗?

4

1 回答 1

2

运行循环确实在这里发挥作用。运行循环通过排空有序的队列集合来处理事件。按顺序,它们是:sync, actions, render, afterRender, destroy, 和timers。视图渲染是视图实际插入到 DOM 中的位置,它总是被安排在render队列中。

如果您对此有其他问题,请发表评论,我很乐意扩展此答案以涵盖它们。

于 2012-11-23T04:58:45.023 回答