2

我正在将我的主干示例转换为现在扩展 Marionette。我发现很难理解用模板实现同样的事情。让我解释。

这就是我用来渲染模板的方式

在视图渲染功能中:

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

*我做错了什么?下划线甚至不存在!*

4

1 回答 1

8

Marionette 不需要您将模型传递给模板,这是您需要在所有 Backbone 视图中执行的重复任务,而 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

http://jsfiddle.net/rayweb_on/msWvV/

于 2013-11-14T16:23:50.833 回答