我正在嘗試使用由Dojo加載的使用dojo.require
的Esri ArgGis JavaScript API。我有一個現有的模塊AMD/requirejs Typescript應用程序,我需要將此代碼集成到。在我最初的TS文件的頂部,我輸入幾個模塊:我該如何解決這個AMD路徑衝突?
import tracer = module('../classes/trace');
import pubsub = module('../classes/pubsub');
import masker = module('../classes/masker');
// etc.
這是工作的罰款,但現在,我已經添加了ArcGIS的代碼,而不是解決我的應用程序中的相對路徑,require.js有拿起從ESRI的網站的baseUrl,並試圖加載:
http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/classes/trace.js
// etc.
在404個響應和腳本錯誤的字符串由此而來。
我該如何解決這個問題?
我試圖加載,加載模塊的頭文件之前設置在我的HTML文件的頭部requirejs的baseUrl:
<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3"></script>
<script type="text/javascript" src="/content/client/libs/require.js"></script> <!-- data-main="/content/client/hop/hop.app" -->
<script type="text/ecmascript">
require.config({
baseUrl: "/Content/client/hop/"
});
</script>
<script src="~/Content/client/hop/hop.app.js"></script>
但這種失敗,投擲要求沒有方法配置一個例外。 (注意:如果我顛倒了html文檔頭部的順序,以便arcgis api在加載順序中最後出現,我得到了相反的問題 - 我的本地文件一切正常,但dojo和映射API失敗,因爲當他們應該在argis服務器上搜索時,他們正在尋找相對於我的網站的路徑)。
謝謝Jeffrey - 這真的很有用。我已經將地圖放入iframe中,以便在截止日期前完成,但我會在下週嘗試一下,並接受它是否有效。 – JcFx 2013-03-13 18:26:25