渲染后的骨干布局管理器



我正在使用骨干和布局管理器。我在MyView中有以下代码.js:

afterRender: function() {
    var scope = this;
    this.model.get("books").each(function(bookModel) {
            var bookView = new BookView({
                model: bookModel
            });
            scope.insertView(".books", bookView).render();
    });
},

在书视图中.js我有afterRender方法:

afterRender: function() {
    console.log("after render");
},

我在模型的 books 属性中有 6 个项目,我为每本书调用 render()。最终我得到的是"渲染后"只记录一次。怎么了?缺少的 5 个"渲染后"日志在哪里?

上面的代码是在MyView的afterRender方法中调用的。由于未知的原因,许多对render()的调用一个接一个地调用不会调用每本书的 afterRender()。
在一次又一次地阅读 LayoutManager 文档后,我意识到我需要在 beforeRender() 方法中调用 insertView()而不呈现视图。这样render()将呈现所有子视图,afterRender()将正确调用:

beforeRender: function() {
    var scope = this;
    this.model.get("books").each(function(bookModel) {
            var bookView = new BookView({
                model: bookModel
            });
            scope.insertView(".books", bookView);
    });
},

相关内容

  • 没有找到相关文章

最新更新