Require.js Shim用于加载JQuery UI和其他JQuery包

时间:2012-07-05 14:20:23

标签: javascript jquery requirejs

我正在尝试使用垫片加载JQuery-Ui,但是当我尝试加载它时,即使我知道路径是正确的,JQueryUi也会保持超时。

require.config({
paths: {
    jQuery: 'libs/jquery-wrapper',
    jQueryUi: 'libs/jquery-ui-min',
    jQuerySelectmenu: 'libs/jquery.ui.selectmenu',
    Underscore: 'libs/underscore-wrapper',
    Backbone: 'libs/backbone-wrapper',
},
shim: {'Backbone': {
          //These script dependencies should be loaded before loading
          //backbone.js
          deps: ['Underscore', 'jQuery'],
          //Once loaded, use the global 'Backbone' as the
          //module value.
          exports: 'Backbone'
      },
      'jQueryUi': {
          deps: ['jQuery'],
      },
      'jQuerySelectmenu': {
          deps: ['jQuery', 'jQueryUi']
      }
  }  
});

require([
    'jQuery',
    'Underscore',
    'Backbone',  
    'jQueryUi',
    'jQuerySelectmenu'  
], 
    function(App) {
        require(['order!src/app']
     ,     function (App) {
    App.initialize();
}); 
});

2 个答案:

答案 0 :(得分:2)

我认为提供的日期代表旧版本的requireJs。按照我的说法操作本教程:Load jQuery UI with requireJS

答案 1 :(得分:0)

尝试使用此项目https://github.com/jrburke/jqueryui-amd将您的jqueryui翻译为模块化版本。然后你可以简单地使用它:

define(['jquery', 'jqueryui/tabs'], function($){
    $('#tabs').tabs();    
});

使用requirejs config:

requirejs.config({
paths: {
    'jqueryui': '/javascript-cdn/jqueryui/' //output form jqueryui-amd
}, 
shim: {
    'jquery': {
        deps: [], 
        init: function(){
            return $; 
        }
    },        
    'jqueryui': {
        deps: ['jquery'] 
    }
}
});

我希望这会有所帮助。