2013-10-04 146 views
0

我試圖加載main.js app.js文件,但我發現:RequireJS,如何加載JS文件

TypeError: App is undefined

的index.html

<script data-main='js/main' src="require.min.js"></script> 

/js/main.js

require([ 
    'app' 
],function(App){ 
    console.log(App); // App is undefined 
    App.initialize(); 
}); 

/js/app.j s

define([ 
    'router' 
], function(Router) { 
    var initialize = function() { 
     Router.initialize(); 

     return { 
      initialize : initialize 
     } 
    } 
}); 

我在做什麼錯?

回答

2

當你需要模塊'app'時,App變量將引用'app'模塊返回的任何內容。然而,在你的情況下,它不返回任何東西:

function(Router) { 
    var initialize = function() { 
     Router.initialize(); 

     return { 
      initialize : initialize 
     } 
    } 

    // returns nothing, i.e. undefined 
} 

看起來你應該initialize功能之外將return塊,本質上它可以被改寫爲:

function (Router) { 
    return { 
     initialize: function() { 
      Router.initialize(); 
     } 
    } 
} 
+0

是的!它現在有效。非常感謝你! –

+0

我很高興我能幫到你。 – kryger