2012-03-19 78 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。