Jquery ui 如何使用RequireJS将jQueryUI包含在我的modular backbone.js应用程序中?
我想使用RequireJS将jQueryUI包含在我的backbone.js应用程序中。my index.html中包含的main.js文件如下所示:Jquery ui 如何使用RequireJS将jQueryUI包含在我的modular backbone.js应用程序中?,jquery-ui,backbone.js,requirejs,Jquery Ui,Backbone.js,Requirejs,我想使用RequireJS将jQueryUI包含在我的backbone.js应用程序中。my index.html中包含的main.js文件如下所示: require.config({ paths: { jquery: 'libs/jquery/jquery-1.7.2.min', jqueryui: 'libs/jquery/jquery-ui-1.8.18.custom.min', underscore: 'li
require.config({
paths: {
jquery: 'libs/jquery/jquery-1.7.2.min',
jqueryui: 'libs/jquery/jquery-ui-1.8.18.custom.min',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-optamd3-min',
text: 'libs/require/text',
templates: 'templates'
}
});
require(['app'], function(App){
App.start();
});
define([
'jquery',
'underscore',
'backbone',
'views/categoryview',
'text!templates/category.html'
], function($, _, Backbone, CategoryView, categoryTemplate){
// Here comes my code
});
对于每个模型/视图/路由器文件,我只在“define”块的开头包含“jquery”名称空间,如下所示:
require.config({
paths: {
jquery: 'libs/jquery/jquery-1.7.2.min',
jqueryui: 'libs/jquery/jquery-ui-1.8.18.custom.min',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-optamd3-min',
text: 'libs/require/text',
templates: 'templates'
}
});
require(['app'], function(App){
App.start();
});
define([
'jquery',
'underscore',
'backbone',
'views/categoryview',
'text!templates/category.html'
], function($, _, Backbone, CategoryView, categoryTemplate){
// Here comes my code
});
但是jQueryUI不能在这些文件中使用。我的代码有问题吗?还是应该在每个“define”块中包含“jqueryui”?但是如果我在“define”块中包含“jqueryui”,我应该如何在函数中命名它以避免与jquery的名称冲突 您可以在主文件中包含仅修补其他对象(如jQuery UI)的所有文件,如下所示(您需要确保在jQuery UI之前加载jQuery):
require(['jquery','app','jqueryui'],函数($,app){app.start();});
另一种方法是在每个模块中包括jqueryui,正如您已经提到的
我个人更喜欢第一种方法,尽管它隐藏了依赖项。相当老的帖子。有一个可以将jqueryui文件转换为jrburke创建的AMD版本的工具。希望它会有用 虽然kujakettu的回答至少部分正确,但我还必须在我的垫片中将jQuery指定为依赖项,以确保jQuery在jQuery UI之前加载 e、 g
其他答案现在有点过时了。jQueryUI附带AMD支持。如果您想要整个项目,只需使用
bowerinstalljqueryui
,然后将其添加到路径。不需要垫片
如果您希望加载应用程序中所需的jQuery UI子集(同时不加载额外的膨胀)然后只需使用
bower install jquery ui
来完成整个过程,然后使用名为r.js的RequireJS构建工具来创建一个包含您所需文件的AMD包。因此,您的意思是按照您提供的方式在我的main.js文件中包含jqueryui,在每个模块中,都不需要担心jqueryui,我只需要包含jquery,一切都将启动并运行?是的,当您第一次包含jquery ui时,它会向原始jquery对象添加更多内容。之后,jQuery对象将提供所有ui功能。如果您有其他jquery插件,同样适用。这种方法是错误的。requirejs不保证jquery在jqueryui之前加载。使用带有手动依赖项的填隙配置会更好。@WillemD'Haeseleer此答案明确指出“您需要确保在jQuery UI之前加载jQuery”填隙配置是一种方法,因此从技术上讲,答案没有问题。@WillemD'Haeseleer对于旧版本,这是正确的。从1.11.0开始,不再需要垫片,因此现在(我知道您的评论很旧)答案是可以的。顺便说一句,这不是我的答案。那些使用旧版本的用户可以使用for-shim-config