我有一个带有以下流程的主干.js/Chaplin 应用程序:
- 用集合实例化的集合视图
- 从服务器获取集合
- 在集合同步时,为集合视图内的每个模型呈现一个“项目视图”。
这可能是一个包含大量待办事项的待办事项列表。假设有 1000 个待办事项。
当所有待办事项都被渲染时,我想对集合视图应用 jQuery 效果,所以我需要确保所有项目视图都被完全渲染。
在应用 jQuery 效果之前,确保所有项目都已在集合视图中呈现的最佳方法是什么?
我目前正在等待渲染最后一个视图,然后调用 jQuery 效果,但这不起作用,因为似乎还没有在页面上绘制 html。只有当我添加超时时它才能正常工作。
这是项目视图中渲染函数的代码:
render: function () {
BaseView.prototype.render.apply(this, arguments);
if (this.isLastItemView()) {
setTimeout(function () {
Chaplin.mediator.publish('last_news_item_rendered');
}, 1000);
}
}