gpt4 book ai didi

javascript - 添加 esri 小部件会导致重复 id 错误

转载 作者:行者123 更新时间:2023-12-03 04:13:07 24 4
gpt4 key购买 nike

我有一个现有的基于 ESRI ArcGis Javascript api 的应用程序,其中 measurement widget应该添加。当我尝试启动此小部件时,我收到以下错误:

  1. dojo/parser::parse() 错误 错误:尝试使用 id==dijit_layout_ContentPane_0 注册小部件,但该 id 已注册
  2. 在 _ContentSetter#undefined 中解析时出错错误:尝试使用 id==dijit_layout_ContentPane_0 注册小部件,但该 id 已注册
  3. 运行自定义 onLoad 代码时出现未定义错误:此延迟已解决

HTML:

<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="title:'Measurement'">
<div id="Measurement"></div>
</div>

JS:

require(["esri/IdentityManager",
"dojo/parser",
"user/MeasurementLoader"
], function(parser, MeasurementLoader) {
parser.parse();
//bootstrap other stuff

MeasurementLoader.init({
map: map
});
});

测量加载器:

define([
"...",

],
function(dom, ...) {
esriConfig.defaults.geometryService = new GeometryService("http://ourarcgisserverurl");

var
sls = new SimpleLineSymbol("solid", new Color([195, 176, 23]), 2),
sfs = new SimpleFillSymbol("solid", sls, null),

init = function(options) {
var widget = new Measurement({
map: options.map,
fillSymbol: sfs,
lineSymbol: sls
//replace by options.container later on
}, dom.byId("Measurement"));

widget.startup();
};
return {
init: init
};
});

此错误的解决方案应该是在加载 arcgis 库时通过设置 data-dojo-config="parseOnLoad: false" 来禁用 parseOnLoad,或者删除 parser.parse( )。但这两种解决方案都不起作用。

删除 MeasurementLoader.init() 调用也会删除错误,这表明我的代码导致第二次解析调用或生成重复的 ID。由于我的 DOM 仅包含一次“dijit_layout_ContentPane_0”,因此我倾向于第一个选项。

我做错了什么?

编辑:Simplified JsFiddle这重现了问题。我删除了非必要的部分,并将所有内容放在一个源文件中,以使其更加清晰。

最佳答案

好吧,我尝试解决它,但 ESRI 测量小部件似乎存在一些问题。

ID id==dijit_layout_ContentPane_0 声称,它是由 esri 测量小部件本身动态生成的注册。

下面的屏幕截图了解更多详细信息-

enter image description here

但是,如果我们需要将所有 dijit 组件 放在顶部并将 parser.parse() 移到顶部,它就会消除错误。

"dijit/layout/BorderContainer"
"dijit/layout/ContentPane"
"dijit/layout/AccordionContainer"
"dijit/form/Button"
"dijit/form/TextBox"

我仍在尝试为此找到一些解决方法,一旦找到其他内容,我会立即更新。

希望这对您有帮助:)

关于javascript - 添加 esri 小部件会导致重复 id 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44244246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com