当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript ArcGIS PopupTemplate.actions用法及代码示例


基本信息

以下是所在类或对象的基本信息。

AMD: require(["esri/PopupTemplate"], (PopupTemplate) => { /* code goes here */ });

ESM: import PopupTemplate from "@arcgis/core/PopupTemplate";

类: esri/PopupTemplate

继承: PopupTemplate > Accessor

自从:用于 JavaScript 4.0 的 ArcGIS API

用法说明

PopupTemplate.actions函数(或属性)的定义如下:

来自 Object[]

A Collection行动或者动作切换对象。每个对象代表一个动作或函数,可以通过单击图标或图像来执行弹出窗口.默认情况下,每个弹出窗口有一个zoom-to带有放大镜图标的动作popupTemplate-zoom-action.单击此图标时,视图会放大四个 LOD 并以所选要素为中心。

PopupTemplates 没有默认操作。要使用 PopupTemplate 覆盖 Popup 上的操作,请参阅 overwriteActions。 PopupTemplate 中定义的操作只会出现在应用该特定 PopupTemplate 的要素或图层的 Popup 中。

弹出窗口中每个动作的顺序与它们在动作 Collection 中出现的顺序相同。

每次单击弹出窗口中的操作时,都会触发 Popup 中的 Popup 事件。此事件应用于为每个单击的操作执行自定义代码。例如,如果您想将 zoom-out 动作添加到 PopupTemplate 以将视图缩小几个 LOD,您可以在单独的函数中定义 zoom-out 代码。然后,您将在 trigger-action 事件处理程序中调用自定义 zoom-out 函数。有关其工作原理的更多详细信息,请参阅下面的示例代码片段。

使用 ActionButtonActionToggle 类中列出的属性定义操作。

例子:

// Defines an action to zoom out from the selected feature
let zoomOutAction = {
  // This text is displayed as a tooltip
  title: "Zoom out",
  // The ID by which to reference the action in the event handler
  id: "zoom-out",
  // Sets the icon font used to style the action button
  className: "esri-icon-zoom-out-magnifying-glass"
};
// Adds the custom action to the PopupTemplate.
popupTemplate.actions.push(zoomOutAction);
// Apply this PopupTemplate to a layer (or graphic)
layer.popupTemplate = popupTemplate;
// This action will only appear in the popup for features in that layer

// The function to execute when the zoom-out action is clicked
function zoomOut() {
  // In this case the view zooms out two LODs on each click
  view.goTo({
    center: view.center,
    zoom: view.zoom - 2
  });
}

// This event fires for each click on any action
// Notice this event is handled on the default popup of the View
// NOT on an instance of PopupTemplate
view.popup.on("trigger-action", function(event){
  // If the zoom-out action is clicked, fire the zoomOut() function
  if(event.action.id === "zoom-out"){
    zoomOut();
  }
});

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 PopupTemplate.actions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。