【发布时间】:2012-11-14 07:12:05
【问题描述】:
我有一个渲染子视图的人员视图。渲染人物视图和人物视图,但不渲染子视图。调试显示它进入子视图但未呈现。
人民观:
渲染:函数(){ $("#page").html(compiledTemplate); _.each(personViewPointers, function (item) { $(".people-collection").append(item.render().el) }); 返回这个 }personview 呈现子视图。渲染正常,但不渲染子视图。
渲染:函数(){ 变量数据 = { 模型:this.model, _:_ }; this.$el.html(compiledTemplate(data)) this.addAllSubViews() var self = 这个 _.each(子视图,功能(项目){ self.$el.append(item.render().el) }); 返回这个 }不渲染的子视图。
渲染:函数(){ this.$el.html(compiledTemplate) 返回这个 }【问题讨论】:
-
subview的render真的被调用了吗?你试过在上面设置断点吗?
-
是的。我做了一个简单的模板只是为了测试和 console.log($(this.el)) 在 this.$el.html(compiledTemplate) 给出“test”之后。这实际上现在调用了两次,有两个子视图..
-
subviews来自哪里?personViewPointers怎么样?$("#page").html(compiledTemplate);不应该是$("#page").html(compiledTemplate());吗?compiledTemplate可能是一个返回一些 HTML 而不是 HTML 本身的函数。 -
从 personview 的集合中添加子视图:this.collection.each(this.addOne) ... subviews[model.id] = new personbillableitemview({model:model})。并且 personViewPointers 以同样的方式从 peopleViews 集合中添加。 compiledTemplate 带有 AMD 使用的文本插件:define([ 'Appregistry', 'collections/admin/peopleCollection', 'views/admin/personView', 'text!templates/admin/people/people.html', 'models/admin/ personDtoModel' ],函数(Appregistry、peopleCollection、personView、peopleTemplate、personDtoModel)。我试过这个:$("#page").html(compiledTemplate()) 不工作
标签: backbone.js