templates

AMD: require(["esri/smartMapping/popup/templates"], (popupTemplateCreator) => { /* code goes here */ });
ESM: import * as popupTemplateCreator from "@arcgis/core/smartMapping/popup/templates.js";
Object: esri/smartMapping/popup/templates
Since: ArcGIS Maps SDK for JavaScript 4.16

This object contains helper methods for generating popup templates to be set on a layer. The suggested popup templates will only include information in the popup related to the layer's renderer. For example, the popup template in the image below was generated based on a layer rendered with a predominance renderer coloring census tracks based on the decade in which the most homes were built.

This provides a better default popup template than the traditional approach of providing a long table of unformatted values.

Suggested default template based on renderer Traditional default
popup-sm-default popup-default

Method Overview

Name Return Type Summary Object
Promise<Templates>

Returns one or more suggested popupTemplates for a given layer based on its renderer.

templates

Method Details

getTemplates

Method
getTemplates(params){Promise<Templates>}

Returns one or more suggested popupTemplates for a given layer based on its renderer. This method is useful in apps where a layer's renderer can be modified by the user (or some other process) and the popup template is expected to display values related to the renderer. Popup templates will not be generated for layers with renderers that don't refer to a data value (i.e. SimpleRenderer with no visual variables).

Parameters
Specification
params Object

See the table below for details of each parameter that may be passed to this function.

Specification

The layer to which the suggested popup templates can be applied.

renderer Renderer
optional

Specify the renderer to be used on the layer when if it will be different than the renderer already set on the layer.

Returns
Type Description
Promise<Templates> Returns an object containing suggested primary and secondary PopupTemplates for the input layer.
Example
// Sets a suggested popupTemplate on the layer based on its renderer
popupTemplateCreator.getTemplates({
  layer: featureLayer,
  renderer: featureLayer.renderer
}).then(function(popupTemplateResponse){
  if ( popupTemplateResponse.primaryTemplate ){
    featureLayer.popupTemplate = popupTemplateResponse.primaryTemplate.value;
  }
}).catch(function(error){
  console.error(error);
});

Type Definitions

Template

Type Definition
Template

Defines a suggested PopupTemplate with a given name and title describing the content and purpose of the PopupTemplate.

Properties
name String

The name of the auto-generated PopupTemplate. This can be used in the UI of web map authoring apps.

title String

The title of the PopupTemplate.

The suggested PopupTemplate.

Templates

Type Definition
Templates

The return object of the getTemplates() method.

Properties
primaryTemplate Template

Includes the primary PopupTemplate suggested for the input layer.

secondaryTemplates Template[]

Includes secondary PopupTemplates that may be applied to the input layer.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.