我正在将我的 Backbone 示例转换为现在扩展的 Marionette。我发现很难理解用模板实现同样的事情。让我解释一下。
这就是我用来渲染模板的方式
在 View 渲染函数中:
campaign.fetch({
var template = _.template(campaignTemplate, {campaign: campaign});
that.$el.html(template);
对于backbone.marionette,我不知道如何做同样的事情,这是我没有任何快乐地尝试过的:
var campaginView = Backbone.Marionette.ItemView.extend({
initialize: function (options) {
// campaign id passed from the URL Route
this.campaign_id = options.id;
},
model: new CampaginModel({
id: this.campaign_id
}),
template: campaignTemplate({
campaign: this.model.fetch()
}),
}); // end campagin view
*我做错了什么?下划线甚至不存在! *
最佳答案
Marionette 不需要您将模型传递给模板,这是您需要在所有 Backbone View 中执行的重复任务,Marionette 背后的想法之一是减少样板代码。
var campaginView = Backbone.Marionette.ItemView.extend({
initialize: function (options) {
// campaign id passed from the URL Route
this.campaign_id = options.id;
this.model = new CampaingModel({id:this.campaign_id});
this.model.fetch();
},
template: campaignTemplate,
});
Marionette 文档是一个包含清晰简洁示例的重要资源,请查看此链接 https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.itemview.md
我还为此创建了一个小jsfiddle
关于javascript - Backbone Marionette 在模板示例中渲染模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19982538/