2013-09-25 60 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

對不起,這是我的錯,但它並沒有解決問題。 –