模板两个模型在一个视图-骨干/木偶
Template two models in one view - Backbone/Marionette
我试图在一个视图中使用两个模型,并使用它们的模板。我在和木偶一起工作。下面是视图的初始化:
main_app_layout.header.show(new APP.Views.HeaderView({
model: oneModel,
model2 : twoModel}
));
这是我的观点:
APP.Views.HeaderView = Backbone.Marionette.ItemView.extend({
template : '#view_template',
className: 'container',
initialize: function() {
//This correctly logs the second model
console.log(this.options.model2);
}
});
模板如下:
<script id="view_template" type="text/template">
<p>{{twoModel_label}} {{oneModel_data}}</p>
<p>{{twoModel_label2}} {{oneModel_data2}}</p>
</script>
它使用oneModel数据正确渲染所有内容,但不渲染第二个,即使它正确记录它。我使用Mustache作为我的模板语言。
有人能帮忙吗?
你可以在视图上重写serializeData
方法,并让它返回两个模型的数据:
APP.Views.HeaderView = Backbone.Marionette.ItemView.extend({
// ...
serializeData: function(){
return {
model1: this.model.toJSON(),
model2: this.options.model2.toJSON()
};
}
});
那么你的模板看起来像这样:
<script id="view_template" type="text/template">
<p>{{model1.label}} {{model1.data}}</p>
<p>{{model2.label}} {{model2.data}}</p>
</script>
尝试创建一个包含两个模型的复杂模型,这个新模型将有另外两个作为属性,您可以访问每个模型的属性,就像这个答案解释的那样…
访问Mustache模板中嵌套的骨干模型属性
相关文章:
- 骨干木偶-布局视图僵尸
- 在渲染骨干视图时获得通知
- 骨干视图触发事件两次
- 骨干视图问题
- 如何让骨干正确渲染子视图
- 骨干视图将样板指定给el
- 收听单选按钮取消选择事件而不知道按钮's上下文(骨干视图)
- 骨干事件触发不同视图之间的协调
- 如何在列表和项目视图中呈现骨干集合
- 骨干视图渲染的工作原理
- “渲染骨干模型视图”返回未定义的结果
- 骨干,如何确保在视图中声明的函数只影响该视图中的DOM元素
- 骨干视图:el和事件
- 有没有办法控制台.log所有事件发生在骨干木偶项目视图中
- 在骨干中为相关模型创建视图和模板
- 骨干.js视图,dom 访问不起作用
- 如何从骨干视图中正确删除任何必要的内容
- 如何根据另一个视图中的更改删除视图?骨干
- 骨干和木偶,项目视图不渲染,如何
- 模板两个模型在一个视图-骨干/木偶