2012-07-05 20 views
6

我想用一個填充程序加載JQuery-Ui,但是當我嘗試加載它時,即使當我知道該路徑是正確的時,JQueryUi也會保持超時。Require.js Shim用於加載JQuery UI和其他JQuery包

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(); 
}); 
}); 
+0

您使用的是哪種瀏覽器? – theintersect 2012-09-08 01:08:34

+0

不知道這是否仍然是一個未解決的問題我沒有真正測試任何要驗證的內容,但我注意到在jQueryUI填充中的deps數組之後有一個額外的逗號。 我猜這會阻止JavaScript正常運行。 – CStroliaDavis 2012-09-27 20:56:53

+0

另一件事(這並不影響jquery-ui的加載成功),最外層的範圍內的App變量(你不用它)是jQuery。 – 2012-10-04 09:00:01

回答

0

嘗試使用此項目https://github.com/jrburke/jqueryui-amd您jQueryUI的轉化爲模塊化版本。然後,你可以簡單地使用它:

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

隨着requirejs配置:

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

我希望這有助於。