使用主干并将参数传递给模型

时间:2013-11-14 15:11:08

标签: javascript jquery backbone.js

我正在使用 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;
});

我注意到我的参数传递给了视图init函数我在此之后有点卡住了。在标准主干中,我刚刚在render函数中创建了一个新模型,并将参数传递给模型。然而,木偶视图有一个'模型'属性,我认为应该允许我在那里传递,但它没有!

型号:

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

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


        // Model Constructor
        initialize: function () {

        },


    });


    return CampaginModel;

});

1 个答案:

答案 0 :(得分: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()函数