0

我正在使用backbone.marionette进行视图控制。

我的问题是“如何将参数传递给模型?”

这是我尝试过的:

define([
    'jquery',
    'underscore',
    'backbone',
    'models/CampaginModel',
    'collections/CampaignCollection',
    'text!templates/includes/_campaign.html'
], function ($, _, Backbone, CampaginModel, CampaignCollection, campaignTemplate) {  
    var campaginView = Backbone.Marionette.ItemView.extend({
        template: campaignTemplate,
        initialize: function (options) {
            this.campaign_id = options.id;
        },
        model: CampaginModel({id: this.campaign_id}),
        onRender: function () {
        }
    }); // end campagin view
    return campaginView;
});

我注意到我的参数被传递给了视图初始化函数,在这一点之后我有点卡住了。在标准主干中,我刚刚在渲染函数中创建了一个新模型,并以这种方式将参数传递给模型。然而,木偶视图有一个“模型”属性,我认为应该允许我在那里传递它,但它没有!

模型:

define([
    'underscore',
    'backbone',
    'jquery'
], function (_, Backbone, jquery) {

    var CampaginModel = Backbone.Model.extend({
        urlRoot: '/api/v1/campaign/',


        // Model Constructor
        initialize: function () {

        },


    });


    return CampaginModel;

});
4

1 回答 1

1

我不知道你的文件结构是什么样的。

但它应该是这样的。

define([
    'jquery',
    'underscore',
    'backbone',
    'models/CampaginModel',
    'collections/CampaignCollection',
    'text!templates/includes/_campaign.html'
], function ($, _, Backbone, CampaginModel, CampaignCollection, campaignTemplate) {

var campaginView = Backbone.Marionette.ItemView.extend({

    template: campaignTemplate,

    initialize: function (options) {

        this.campaign_id = options.id;
        this.model.set({id: this.campaign_id});

    },
    model: CampaginModel,
    onRender: function () {
    }

}); // end campagin view


return campaginView;


});

我还没有测试代码。

如果您需要将参数设置为模型,则必须使用主干的model.set()功能

于 2013-11-14T15:21:13.063 回答