Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法加载Arcgis api模块_Javascript_Dojo_Arcgis_Esri - Fatal编程技术网

Javascript 无法加载Arcgis api模块

Javascript 无法加载Arcgis api模块,javascript,dojo,arcgis,esri,Javascript,Dojo,Arcgis,Esri,我正在编写使用ArcGIS API和Dojo类开发交互式地图的代码 它工作正常,直到我定义了一些模块,如“esri/工具栏/绘图”或其他一些模块。这些参数给出了一个错误:http://localhost/esri/toolbars/draw.js 404(未找到) 我的问题是,如果我正在使用许多其他模块,如“dojo/_base/declare”、“dojo/_base/lang”、“dojo/on”、“dojo/Deferred”、“esri/map”和许多其他模块,为什么程序不能加载“esr

我正在编写使用ArcGIS API和Dojo类开发交互式地图的代码

它工作正常,直到我定义了一些模块,如“esri/工具栏/绘图”或其他一些模块。这些参数给出了一个错误:http://localhost/esri/toolbars/draw.js 404(未找到)

我的问题是,如果我正在使用许多其他模块,如“dojo/_base/declare”、“dojo/_base/lang”、“dojo/on”、“dojo/Deferred”、“esri/map”和许多其他模块,为什么程序不能加载“esri/toolbars/draw”?有趣的是,它在localhost中搜索它,因为我没有在本地使用ArcGIS API,所以在localhost中找不到它

我想知道是否有人能帮我做这件事。下面是我的代码示例:

require({
async: true,
parseOnLoad: true,
baseUrl: "/myApp/",
aliases: [
['text', 'dojo/text']
],
packages: [{
name: 'controllers',
location: 'js/controllers'
}, {
name: 'services',
location: 'js/services'
}, {
name: 'utils',
location: 'js/utils'
}, {
name: 'widgets',
location:  'js/widgets'
}, {
name: 'app',
location: 'js',
main:'main'
}]
}, ['app']);
___________________________________________ widgets/edit/drawTools.js
define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/on',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dojo/dom-class',
'text!widgets/edit/drawTools.html',
'esri/graphic',
"esri/toolbars/draw",
"esri/symbols/SimpleMarkerSymbol", 
"esri/symbols/SimpleLineSymbol",
"esri/symbols/PictureFillSymbol",     
"esri/symbols/CartographicLineSymbol",
"esri/Color"
    ], function(
    declare, lang, on, _WidgetBase, _TemplatedMixin, domClass, template,      graphic, Draw, SimpleMarkerSymbol, SimpleLineSymbol,
    PictureFillSymbol, CartographicLineSymbol, Color
    ) {


        return declare([_WidgetBase, _TemplatedMixin], {

            templateString: template,
            map:null,
            options:{},

            constructor: function(options) {
                this.options = options;
                this.map = this.options.map;
            },

            postCreate: function() {
                tb = new Draw(this.map);
                tb.on("draw-end", '_addGraphic');
            }

            function _addGraphic(evt) {
        }
        })
    })

dojo的运行时配置不正确。请参阅文档

请注意,并非所有配置选项都可以在运行时设置。在里面 特定的、异步的、tlmSiblingOfDojo的和预先存在的has测试无法执行 装载机装载后,必须立即更换。此外,大多数配置 数据被浅层复制,这意味着您无法使用此 例如,向自定义配置添加更多密钥的机制 对象该对象将被覆盖

尝试使用添加dojoConfig的默认方式。此外,必须在添加esri api url之前添加dojoConfig

<script>
    dojoConfig= {
        parseOnLoad: true,
        async: true
        package: [{
            "name": "agsjs",
            "location": location.pathname.replace(/\/[^/]+$/, "")+'/agsjs'
          }]
    };
</script>

dojoConfig={
parseOnLoad:true,
异步:true
包装:[{
“名称”:“agsjs”,
“位置”:location.pathname.replace(/\/[^/]+$/,“”)+'/agsjs'
}]
};

Dojo api是esri api的一部分,因此不需要为Dojo添加显式url。

很高兴我能提供帮助,请将问题标记为已回答。