在导航到一个特定的URL,控制方法被触发,它加载的ItemView控件到我的应用程序的地区之一。 这本身ItemView控件(父)将包含子ItemViews了一把,使它们都当它呈现本身。 这里的家长ItemView控件:
return Backbone.Marionette.ItemView.extend({
template: Handlebars.compile(template),
ui: {
textInput01: "#text-input-01"
},
events: {
// no events yet
},
initialize: function() {
// no init yet
},
onRender: function() {
this.appRoutefinderTextinputItemView = new AppRoutefinderTextinputItemView({parentView: this});
$(this.ui.textInput01).html(this.appRoutefinderTextinputItemView.render());
}
});
而这里的当前唯一的ItemView控件:
return Backbone.Marionette.ItemView.extend({
template: Handlebars.compile(template),
events: {
// no events yet
},
initialize: function() {
// no init yet
},
onRender: function() {
// no onRender yet
}
});
出于某种原因,我无法捉摸,虽然双方的initialize
和onRender
对孩子的方法是射击,和所有必要的数据似乎是目前,孩子要么不被渲染或“空白”的方式被呈现,从而导致不变父视图。
据我了解,我不应该需要调用render()
的孩子,因为它实例/引用的ItemView控件当的暗示? 甚至当我把render()
调用,同样的结果来。
我必须假设有一些关于从我只是缺少其他ItemViews内再现ItemViews,而是通过文档淘似乎并没有帮助。
次要的问题是:我该实例子视图以正确的方式,还是有更好的方式来做到这一点?
*编辑 - 所以一些试验后,出现了“接受”的解决方案很简单,就是让家长图的布局,这是一个扩展ItemView控件。 这并不工作。 不过,我仍然在想为什么一个ItemView控件中的ItemView控件不起作用。 我是打算手写集成render()
方法在ItemView控件,是我要保持这种方式?