2012-05-06 88 views
1

我知道這是require.js的全部要點,但在我的情況下它並不表現出這種方式。只有當我真正需要它們時,require.js纔會加載我的文件

我正在創建一個單頁Backbone.js應用程序。應用程序的主要入口點是通過路由器。比方說,我有3種途徑:

users: function(){ 
    require('users'); 
}, 
products: function(){ 
    require('products'); 
}, 
groups: function(){ 
    require('groups'); 
}, 

基於我打電話我要加載的文件中的函數,但require.js沒有做到這一點。

相反,它會在需要的地方爲我的完整網站下載所有文件。我甚至沒有調用該函數,但它加載了該文件。

有沒有一種方法讓require.js像它應該那樣運行,並且只有當我真的在函數內部時才下載文件。

+0

爲什麼你刪除http://stackoverflow.com/questions/10490131/strange-variable-undefined-error-in-javascript? – zerkms

+0

對不起,但我認爲這個問題太含糊。我不得不在發佈代碼之前發佈代碼。我找出了問題所在。正如你可以看到這個問題,我使用require.js。現在的問題是require.js在調用函數之前沒有實際加載文件,但是值在調試器中。我編輯了一些硬性依賴關係,現在一切正常。 –

+0

我刪除它是錯的嗎? –

回答

6

你基本上可以做你的代碼片段。它看起來像這樣:

users: function(){ 
    require(['users'], function(Users){ 
     //Code 
    }); 
}, 
products: function(){ 
    require(['products'], function(Products){ 
     //Code 
    }); 
}, 
groups: function(){ 
    require(['groups'], function(Groups){ 
     //Code 
    }); 
}, 
+0

這使得感覺,真實! –

相關問題