Я использую require.js с основой. Мой вопрос: как мне получить.() Мою модель из моего представления. То, что я пробовал, приведен ниже, однако я получаю сообщение об ошибке "Кампания не определена". Я думаю, что я очень близок:
Модель:
define([
'underscore',
'backbone'
], function(_, Backbone) {
var Campagin = Backbone.Model.extend({
urlRoot: '/api/v1/campaign/'
});
return Campagin;
});
Посмотреть:
define([
'jquery',
'underscore',
'backbone',
'views/RewardView',
'views/FriendRewardView',
'models/CampaginModel',
'text!templates/backbone/portal/campaignTemplate.html'
], function($, _, Backbone, campaignTemplate){
var CampaginView = Backbone.View.extend({
el: '#campaign-panel',
render: function(options) {
if(options.id){
var campaign = new Campagin({id: options.id});
campaign.fetch({
success: function(campaign){
// We can only get the reward when the campaign reward url is returned.
var rewardview = new RewardView();
rewardview.render({reward_url: campaign.get('participant_reward')});
var friendview = new FriendRewardView();
friendview.render({reward_url: campaign.get('friend_reward')});
var template = _.template(campaignTemplate, {campaign: campaign});
this.$el.html(template);
}// end success
}); // end fetch
}// end if option.id
} // end render function
}); // end campagin view
return CampaginView;
});
В вашем представлении вы указываете массив зависимостей, которые будут переданы функции определения как аргументы функции, перечисленные в том же порядке, что и порядок в массиве. Но вы только объявили 4 аргумента: $
(jQuery), _
(underscore), Backbone
и campaignTemplate
(что неверно, поскольку согласно вашим зависимостям должен быть RewardView
). Поэтому вы должны правильно заявить о своих функциях. Например:
define([
'jquery',
'underscore',
'backbone',
'views/RewardView',
'views/FriendRewardView',
'models/CampaginModel',
'text!templates/backbone/portal/campaignTemplate.html'
], function($, _, Backbone, RewardView, FriendRewardView, Campagin, campaignTemplate){
...
}
Проверьте документацию Требовать JS для получения дополнительной информации.