我会列出一些代码并解释一下情况
(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
,一切都会好的,但这也意味着每次调用fetching
时el
都会被实例化,这不是很好。所以这只是一个幸运的方式,它只有机会定义它,因为有一个render
,否则它将是App.views.comments
。
我添加了一些注释,说明了会发生什么,您可以在render
和fetching
中找到它们。
在某些情况下解决此问题的最佳方法是什么?
undefined
答案 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()
,但我想你可以从这里跟我来。