2013-09-25 61 views
0

我想将现有的Backbone.js项目转换为Require.js。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(); 

}); 

然而,当我浏览到我的路线“/ “对主页初始化,我得到以下错误无论怎样我尝试和我似乎无法找到解决..

Uncaught ReferenceError: Backbone is not defined HomepageView.js:1 

回答

0

改变第一线以下将是一个开端。

定义([ '骨干', '/应用/ JS /视图/主页'],功能(骨干网,主页){

+0

对不起,这是我的错,但它并没有解决问题。 –