2012-03-19 77 views
1

我試圖在這個web application庫中包含jquery-ui庫。RequireJS和依賴於以特定順序加載的腳本

require.config({ 
    paths: { 
    jquery: 'libs/jquery/jquery-min', 
    ui: 'libs/jquery-ui/jquery-ui-min', // ******** I just added this line ******** 
    underscore: 'libs/underscore/underscore-min', 
    backbone: 'libs/backbone/backbone-optamd3-min', 
    text: 'libs/require/text' 
    } 
}); 

require(['views/app'], function(AppView){ 
    var app_view = new AppView; 
}); 

有時我得到以下錯誤:

jQuery is not defined 

由於RequireJS負載和計算腳本處於不確定的順序, 我想

爲此,我以這種方式改變了代碼它取決於jquery.ui庫(它取決於jquery),有時在jquery之前加載。按照documentation我可以使用order plugin。 無論如何,對於需要下劃線的骨幹,這個問題從未發生過。

所以我的問題是:

爲什麼骨幹(其中取決於由下劃線)這個問題永遠不會發生?

我必須用order plugin來解決我的問題jquery-ui

+0

最後一個問題:jQuery UI依賴於jQuery,因此需要在它之前加載jQuery。 – 2012-03-19 19:07:43

+0

我現在遇到了這個問題,用jQuery + jQuery-UI +下劃線+請求web應用程序。你找到解決方案嗎? – 2012-08-14 17:37:47

+0

好問題!爲什麼會發生這樣的事情? – dmp 2012-09-13 12:14:04

回答

2

骨幹需要order或其他一些插件以加載太...

除非你的情況已經從詹姆斯·伯克作出的選擇,以正常使用的骨幹,而是叉子(我從這裏推測:https://github.com/jrburke/backbone)。這表示您指定的主幹路徑爲backbone-optamd3-min。似乎你已經忘了它;) 使用amd分支是好的,只要你記得你做出了這個選擇。如果您決定使用插件,您可以使用正常 Backbone.js。