str*_*ght 8 javascript model-view-controller backbone.js marionette
我试图在一个视图中使用两个模型,并使用它们两个模板.我和Marionette一起工作.这是我初始化视图:
main_app_layout.header.show(new APP.Views.HeaderView({
model: oneModel,
model2 : twoModel}
));
Run Code Online (Sandbox Code Playgroud)
这是我的观点:
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);
}
});
Run Code Online (Sandbox Code Playgroud)
这是模板:
<script id="view_template" type="text/template">
<p>{{twoModel_label}} {{oneModel_data}}</p>
<p>{{twoModel_label2}} {{oneModel_data2}}</p>
</script>
Run Code Online (Sandbox Code Playgroud)
它使用oneModel数据正确呈现所有内容,但不会呈现第二个,即使它正确记录它.我正在使用胡子作为我的模板语言.
有人可以帮忙吗?
Der*_*ley 16
您可以serializeData在视图上覆盖该方法,并让它返回两个模型的数据:
APP.Views.HeaderView = Backbone.Marionette.ItemView.extend({
// ...
serializeData: function(){
return {
model1: this.model.toJSON(),
model2: this.options.model2.toJSON()
};
}
});
Run Code Online (Sandbox Code Playgroud)
然后你的模板看起来像这样:
<script id="view_template" type="text/template">
<p>{{model1.label}} {{model1.data}}</p>
<p>{{model2.label}} {{model2.data}}</p>
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6157 次 |
| 最近记录: |