Я пытаюсь преобразовать существующий проект Backbone.js в Require.js.
В соответствии с рекомендациями я модулирую свои компоненты. Мой маршрутизатор является отправной точкой в приложении, поэтому мой файл main.js требует, чтобы файл выглядел следующим образом:
requirejs.config({
'baseUrl': '/',
'paths': {
'app': 'app',
// define vendor paths
'jquery' : 'bower_components/jquery/jquery',
'underscore' : 'bower_components/underscore/underscore',
'backbone' : 'bower_components/backbone/backbone',
'handlebars' : 'bower_components/handlebars/handlebars',
'nprogress' : 'bower_components/nprogress/nprogress',
},
'shim':{
'jquery': {
'exports': '$'
},
'underscore': {
'exports': '_'
},
'backbone': {
'deps': ['jquery', 'underscore'],
'exports': 'Backbone'
},
'handlebars': {
'exports': 'Handlebars'
}
}
});
require(['app/js/routes/router'], function(Router) {
// Fire up the quattro
});
Тогда мой маршрутизатор выглядит так
define(['backbone', '/app/js/views/HomepageView'], function(Backbone) {
var AppRouter = Backbone.Router.extend({
routes: {
"": "showHomepage",
"categories/:sofa": "showCategoryList",
"range/:categoryName/:sofaName": "showProductRange",
"customersearch/:customerName": "showCustomerSearch"
}
});
// Initialise our router
var router = new AppRouter;
router.on("route:showHomepage", function(param){
localStorage.removeItem('lastProduct');
var homepageview = new HomepageView({ el: $('#content') });
})
// Start the router
Backbone.history.start();
});
Однако, когда я перехожу к своему маршруту '/' для инициализации HomeView, я получаю следующую ошибку, независимо от того, что я пытаюсь, и я не могу найти решение.
Uncaught ReferenceError: Backbone is not defined HomepageView.js:1
изменение первой строки на следующее было бы началом.
define (['backbone', '/app/js/views/HomeView'], функция (Backbone, HomePageView) {