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 では、モデルをテンプレートに渡す必要はありません。これは、すべてのバックボーン ビューで行う必要のある反復的なタスクです。Marionette の背後にあるアイデアの 1 つは、ボイラープレート コードを減らすことです。

 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,

});

明確で簡潔な例の優れたリソースはマリオネットのドキュメントです。このリンクを ご覧ください 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 に答える