jquery-ui – 如何使用RequireJS在我的模块化骨干js应用程序中包含jQueryUI?

我想在我的backbone.js应用程序中使用RequireJS包含jQueryUI.我的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: 'libs/underscore/underscore-min',backbone: 'libs/backbone/backbone-optamd3-min',text: 'libs/require/text',templates: 'templates'
       }

});

require(['app'],function(App){
    App.start();
});

对于每个模型/视图/路由器文件,我只需在“define”块的开头包含’jquery’命名空间,如下所示:

define([
    'jquery','underscore','backbone','views/categoryview','text!templates/category.html'
    ],function($,_,Backbone,CategoryView,categoryTemplate){
        // Here comes my code
});

但jQueryUI无法在这文件中使用.我的代码有什么问题吗?还是应该在每个“定义”块中包含“jqueryui”?但是如果我在“define”块中包含“jqueryui”,那么我应该如何在函数中命名它,以避免与jquery发生名称冲突?

解决方法

您可以包含所有仅在主文件中修补其他对象(如jQuery UI)的文件,如下所示(您需要确保jQuery在jQuery UI之前加载):
require(['jquery','app','jqueryui'],function ($,App) { App.start(); });

另一种方法是在每个模块中包含jQuery UI,就像您已经提到的那样.

我个人更喜欢第一种方法,即使它隐藏依赖.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...