2013-12-19 45 views
0

我已閱讀了很多答案並遵循了以下步驟(我似乎對),但DevTools仍顯示Backbone is not defined.錯誤。主幹裝載了requirejs墊片但仍然主幹未定義錯誤

以下是我如何使用requirejs墊片。

<script data-main="js/subject_main.js" src="js/libs/require.js"></script> 

subject_main.js

require.config({ 
    paths: { 
     bootstrap: '../libs/bootstrap.min', 
     jquery:  '../libs/jquery', 
     underscore: '../libs/underscore', 
     backbone: '../libs/backbone', 
     text:  '../libs/text', 
     json2:  '../libs/json2', 
     templates: '../../templates' 
    }, 
    shim: { 
     'boostrap':{ 
      deps: ['jquery'] 
     }, 
     'backbone': { 
      deps: ['jquery', 'underscore'], 
      exports: 'Backbone' 
     }, 
     'underscore': { 
      exports: '_' 
     }    
    } 

}); 

require(['subjects', 'json2'], function(app) { 
    app.initialize(); 
}); 

subjects.js

define(['jquery', 'underscore', 'backbone', 'subject_router'], function($, _, Backbone, router) { 
    return { 
     initialize: function() { 
      Backbone.history.start(); 
     } 
    }; 
}); 

subject_router

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'models/subject_item_model', 
    'collections/subjects_collection', 
    'views/subject_view' 
],function($, _, Backbone) {    

    var AppRouter = Backbone.Router.extend({ ... }); 

return new AppRouter(); 
}); 

以下腳本的順序(sequence)的Chrome DevTools節目 - enter image description here

正如你所看到的,骨幹在非常結束加載。我不知道發生了什麼問題以及在哪裏。

+0

你如何得到「Backbone is not defined」?它是否顯示在控制檯中的文件名和行號? (如果是這樣,你向我們展示的代碼中的這個位置在哪裏?)這是因爲你在控制檯輸入了'Backbone''而解釋器不能解釋它嗎? – Louis

+0

@Louis它出現在'subject_router.js'上線我嘗試創建一個路由器。 DevTools中的Network選項卡顯示路由器在主幹之前首先加載。 – Gimali

+0

我不知道它是否重要,但是在代碼中沒有使用'bootstrap'。 –

回答

0

backbone.js或underscore.js在這裏看起來很好,事實上它們正在被加載!

開發工具中的404s指的是源映射文件(underscore.min.map)。你可能想看看這個帖子:Missing Javascript ".map" file for Underscore.js when loading ASP.NET web page

PS:在您的subject_router代碼中,您傳遞給模塊函數的參數不匹配。

+0

如果通過「不匹配」來表示聲明的參數數量,那麼這根本就沒有問題。否則,你看到了什麼不匹配? – Louis

+0

是的,在這種情況下不會產生問題......但不是一個好的做法。只是指出,如果你沒有注意到它。 :) – decio

+0

是的,我通過添加這些文件來解決地圖錯誤的問題。 – Gimali