Backbone:嵌套在模型中的集合

时间:2012-08-18 15:32:35

标签: javascript backbone.js

我会列出一些代码并解释一下情况 (1)我实例化了App.views.tasks。在此视图的initialize函数中,我获取任务 (2)render函数中,我为每项任务实例化App.views.task
 (3)initialize的{​​{1}}函数中,我实例化App.views.task并向其传递了注释集合和对{{1}的引用元素,呈现任务的位置 (4) App.views.comments踢取任务评论的提取。

问题
如果评论的DOM没有引起延迟,则我传递给App.views.comments的{​​{1}}元素的引用将为DOM
如果我在App.views.comments函数中传递了引用undefined,一切都会好的,但这也意味着每次调用fetchingel都会被实例化,这不是很好。所以这只是一个幸运的方式,它只有机会定义它,因为有一个render,否则它将是App.views.comments
我添加了一些注释,说明了会发生什么,您可以在renderfetching中找到它们。

在某些情况下解决此问题的最佳方法是什么?

undefined

1 个答案:

答案 0 :(得分:1)

我建议您将此行this.commentsView = new App.views.comments({collection: this.model.get('comments'), el: this.$el});移至App.views.task.render()的末尾。

实际上这一行是呈现行为的一部分,所以这是更好的地方。

这样做你也可以这样做:

this.commentsView = new App.views.comments({collection: this.model.get('comments'), el: this.$el.find('.feed-comments ul')});

我认为这是在要求。

你应该在this.commentsView.render()中做更多的事情,比如致电App.views.task.render(),但我想你可以从这里跟我来。