我正在使用 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;
});
答案 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()
函数