从信息窗口操作窗格调用函数

2442
9
跳到解决方案
2019年10月30日10:27
ElizabethMiller
新贡献者III

我一直在研究这个样本(从弹出窗口调用函数),但我不能让它工作。我正在与一个道场小部件CMV工作。我有一个信息窗口,通过一组返回滚动,它工作得很好。我试图建立一个链接到一个功能,将突出显示在信息窗口中的每个功能,当用户点击(即链接到一个功能,将从html的一个href -这个例子多重查询结果| JavaScript 3.30的ArcGIS API我会做我想做的,但我不能从html中调用函数。)

所以现在我只是试图将链接添加到信息窗口的操作窗格,它没有显示出来。我甚至还没有测试这个功能,因为我甚至无法显示视觉链接。我看不出与上面第一句中我提到的例子有什么不同。我唯一做的改动是将引用改为"窗口.map.infoWindow.domNode) [0])“To”.map.infoWindow.domNode) [0])":

var link = domConstruct。创建(“a”,{
"class": "action mylink";
“id”:“statsLink”,
"innerHTML": "Action Link Test", //显示在该链接弹出窗口中的文本
"href": "javascript: void(0);"
},查询(”。actionList”,this.map.infoWindow.domNode) [0]);

On (link, "click", this.myfunction());

我可以得到的链接显示,如果我使用这个例子从弹出文档,但这种格式不允许我调用我的函数。

varcustomActions地图infoWindow“选择的改变”函数(){varselectedFeature=地图infoWindowgetSelectedFeature();如果selectedFeature& &selectedFeature属性类型===“犯罪”{varcrimeAction={标题“犯罪报告”类名称“crime-report-action”回调函数(){控制台日志“获取完整罪案报告”);}};customActions=地图infoWindowaddActions([crimeAction]);}其他的{地图infoWindowremoveActionscustomActions);}});

任何帮助将非常感激!谢谢!

0荣誉
1解决方案

接受的解决方案
ElizabethMiller
新贡献者III

我发现了行动窗格的问题。我需要这样的格式:

Var链接= dojo。创建(“a”,{"id": "mylink", "class": "action", "innerHTML": Action Link", //text that appears in the popup for the link "href": "javascript: void(0);" }, dojo.query(".actionList", this.map.infoWindow.domNode)[0])

我仍然不确定这是否会让我达到我想要的最终结果,但至少这个链接现在正在工作。我真的很想在html中建立链接,就像我上面引用的多个查询结果示例一样,但是我无法在dojo小部件中找到这样的示例。非常感谢你帮助我思考这个问题!

在原帖子中查看解决方案

0荣誉
9回复
RobertScheitlin__GISP
MVP尊敬贡献者

伊丽莎白,

所以你要确保这个。地图in your code context is actually returning a esri map object.

0荣誉
ElizabethMiller
新贡献者III

嗨罗伯特,

将鼠标悬停在devtools窗口的this.map.infoWindow.domNode上,它显示为“div.esriPopup.esriPopupVisible”。

“Zoom To”在信息窗口底部的操作窗格中显示得很好,你可以在附加的元素屏幕截图中看到。

0荣誉
RobertScheitlin__GISP
MVP尊敬贡献者

浏览器的web控制台有任何错误吗?

你的代码中有domConstruct和query的需求吗?

0荣誉
ElizabethMiller
新贡献者III

没有错误。我有dojo/query和dojo/dom-construct(查询和domConstruct)在我的定义/声明代码。

我需要在我的css中设置一些东西吗?我不确定。actionlist和statsLink指的是什么。我试着用css做实验,但是没有用。我创建了这些条目:

.esriPopup .actionsPane {
显示:显示;
}

.esriPopup . actionspan .zoomTo{
显示:显示;
}

.esriPopup . actionspan .action .mylink{
显示:显示;

0荣誉
RobertScheitlin__GISP
MVP尊敬贡献者

伊丽莎白,

显示:显示;不是要显示的有效值。

CSS显示属性

0荣誉
ElizabethMiller
新贡献者III

谢谢——我将其更正为“inline”,但这并没有解决问题。

缩放到显示在任何情况下,不添加特殊的css。但仍然没有其他动作显示。

就像我上面说的,我可以让动作显示,如果我使用下面的例子:

customActions=this.mapinfoWindowaddActions([crimeAction]);

0荣誉
RobertScheitlin__GISP
MVP尊敬贡献者

伊丽莎白,

所以我怀疑主要问题是这部分代码返回为空

查询(”。actionList”,this.map.infoWindow.domNode) [0]

你能测试一下是否得到了除null以外的值吗?

0荣誉
ElizabethMiller
新贡献者III

我发现了行动窗格的问题。我需要这样的格式:

Var链接= dojo。创建(“a”,{"id": "mylink", "class": "action", "innerHTML": Action Link", //text that appears in the popup for the link "href": "javascript: void(0);" }, dojo.query(".actionList", this.map.infoWindow.domNode)[0])

我仍然不确定这是否会让我达到我想要的最终结果,但至少这个链接现在正在工作。我真的很想在html中建立链接,就像我上面引用的多个查询结果示例一样,但是我无法在dojo小部件中找到这样的示例。非常感谢你帮助我思考这个问题!

0荣誉
RobertScheitlin__GISP
MVP尊敬贡献者

伊丽莎白,

这告诉我,你对domConstruct和查询的要求有问题。dojo的使用。查询和dojo。创建是恢复到旧的方式(即之前的dojo 1.7)。

0荣誉