2014-02-21 49 views
1

首先,我使用的是dojo框架(v1.9.0)的自定義生成,使用build.dojotoolkit.org/完成,包含我需要的模塊,包括loader模塊。用dojo解決jQuery和jQueryUI之間的依賴需要

我有一個問題涉及到dojo.require加載器和jQuery框架。主要問題是如何解決jQuery和jQueryUI之間的依賴關係(通過所有其他jQuery插件進行擴展)。

我一直在試圖通過這種方式加載它們做一個簡單的測試:

require({ 
    async: true, 
    baseUrl: 'js/GUIFramework/', 
    tlmSiblingOfDojo: false, 
    paths: { 
     dojo: 'external/dojo/dojo-1.9', 
     jQuery: 'external/jquery/jquery-1.9.1', 
     jQueryUI: 'external/jquery/jquery-ui.min' 
    } 
}, 
[ 
    'jQuery', 
    'jQueryUI' 
], 
    function (jQuery, jQueryUI) { 
     var test = jQuery; 
    }); 

但在執行回調函數時,試圖加載模塊後,我有這樣的錯誤(請參閱使用螢火蟲): "ReferenceError: jQuery is not defined" in jquery-ui.min.js (línea 5)

我已經看到了其他裝載機,像RequireJS,有一個稱爲「shim」的配置選項,它特異性地與定義的非「定義」功能加載文件。但我還沒有看到任何與dojo.require類似的東西。

你是如何解決這個對於這個特定情況和其他類似的可能發生?

謝謝, 問候。

回答

0

導航多一點,並期待在道場一"shim"實施後,我發現了一個插件,"use.js"http://documentup.com/tbranyen/use.js),這似乎具有相同的功能,在RequireJS一個"shim",和我做,直到測試此刻,它似乎工作正常。

我希望它對任何人都有幫助。

編輯:我發佈到use.js插件的鏈接不再可用。現在你可以看到它here

2

的墊片,實際上無非是做以下幾點:

define([], function() { 
    return jQuery; 
}); 

jQuery和許多其他JavaScript庫/框架自理添加到全球範圍,增加了jQuery的同時$標誌爲jQuery。現在你只需定義你自己的jQuery shim模塊來返回這個全局變量。

+0

您的回答已打開我的眼睛,我終於在您的意見附近找到了解決方案。我選擇定義中間模塊,在其中加載我需要的無AMD文件和jQuery插件。通過這種方式,我確定在加載之前加載文件的每個依賴項。 – christiansr85