EditorViewModel

require(["esri/widgets/Editor/EditorViewModel"], function(EditorVM) { /* code goes here */ });
Class: esri/widgets/Editor/EditorViewModel
Inheritance: EditorViewModel Accessor
Since: ArcGIS API for JavaScript 4.11

Provides the logic for the Editor widget.

See also:
Example:
const editor = new Editor({
  viewModel: { // autocasts as new EditorViewModel
    layerInfos: [{
      layer: featureLayer,
      deleteEnabled: false // disables deleting features
    }]
  }
});

Constructors

new EditorViewModel(properties)
Parameter:
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
CreateWorkflow|UpdateWorkflow

A property indicating the current active workflow.

more details
more detailsEditorViewModel
String[]

An array of string values which specifies what end users are allowed to edit.

more details
more detailsEditorViewModel
Boolean

Convenience property that reads whether there are any editable layers that support the create workflow.

more details
more detailsEditorViewModel
Boolean

Convenience property that reads whether there are any editable layers that support the update workflow.

more details
more detailsEditorViewModel
String

The name of the class.

more details
more detailsAccessor
Collection<EditableItem>

A collection of editable item objects that match the feature being updated.

more details
more detailsEditorViewModel
Object[]

An array of objects containing information specific to any failed editing operations.

more details
more detailsEditorViewModel
FeatureFormViewModel

The FeatureFormViewModel for supporting the editor widget.

more details
more detailsEditorViewModel
FeatureTemplatesViewModel

The FeatureTemplatesViewModel for supporting the editor widget.

more details
more detailsEditorViewModel
LayerInfo[]

An array of editing configurations for individual layers.

more details
more detailsEditorViewModel
SketchViewModel

The SketchViewModel for supporting the editor widget.

more details
more detailsEditorViewModel
SnappingOptions

The SnappingOptions for editing.

more details
more detailsEditorViewModel
String

The widget's state.

more details
more detailsEditorViewModel
Boolean

When true, there is at least one edit request being processed.

more details
more detailsEditorViewModel
MapView|SceneView

A reference to the MapView or SceneView.

more details
more detailsEditorViewModel

Property Details

activeWorkflow CreateWorkflow|UpdateWorkflowreadonly

A property indicating the current active workflow. This is either CreateWorkflow or UpdateWorkflow.

See also:
allowedWorkflows String[]

An array of string values which specifies what end users are allowed to edit. For example, a feature layer with full editing privileges may be available. But you may only want the end user to have the ability to update existing features. Set the allowedWorkflows to only update.

Possible Value Description
create Indicated in the widget via the Add feature option. This allows the end user to create new features in the feature service.
update Indicated in the widget via the Edit feature option. This allows the end user to update and/or delete features in the feature service.

These workflows are only enabled if the feature service allows these operations. For example, if a feature service is only enabled to allow updates, 'Add features' is not enabled.

canCreate Booleanreadonly

Convenience property that reads whether there are any editable layers that support the create workflow.

canUpdate Booleanreadonly

Convenience property that reads whether there are any editable layers that support the update workflow.

declaredClass Stringreadonly inherited

The name of the class. The declared class name is formatted as esri.folder.className.

editableItems Collection<EditableItem>readonly

A collection of editable item objects that match the feature being updated.

failures Object[]readonly

An array of objects containing information specific to any failed editing operations. In addition to the error(s), options to retry() or cancel() are provided.

Property:
error Error

The readonly error message.

featureFormViewModel FeatureFormViewModel

The FeatureFormViewModel for supporting the editor widget.

featureTemplatesViewModel FeatureTemplatesViewModel

The FeatureTemplatesViewModel for supporting the editor widget.

layerInfos LayerInfo[]

An array of editing configurations for individual layers.

If you have an editable feature layer but do not want the end user to do any type of editing, you can limit this by setting the enabled property to false.

Example:
const editor = new Editor({
  layerInfos: [{
    view: view,
    layer: featureLayer, // pass in the feature layer
    fieldConfig: [ // Specify which fields to configure
    {
      name: "fulladdr",
      label: "Full Address"
    },
    {
      name: "neighborhood",
      label: "Neighborhood"
    }],
    enabled: true, // default is true, set to false to disable editing functionality
    addEnabled: true, // default is true, set to false to disable the ability to add a new feature
    updateEnabled: false // default is true, set to false to disable the ability to edit an existing feature
    deleteEnabled: false // default is true, set to false to disable the ability to delete features
  }]
});
sketchViewModel SketchViewModel

The SketchViewModel for supporting the editor widget.

snappingOptions SnappingOptions
Since: ArcGIS API for JavaScript 4.19

The SnappingOptions for editing. Supports self snapping and feature snapping.

state Stringreadonly

The widget's state. Possible values are in the table below.

Value Description
ready Dependencies are met and has valid property values.
disabled Dependencies are missing and cannot provide valid inputs.
editing-new-feature The Editor is currently editing (creating) a new feature.
editing-existing-feature The Editor is currently editing an existing feature.
awaiting-update-feature-candidate The period when the application is awaiting the user's input after clicking update and multiple features are returned. Specify the feature to update.
awaiting-feature-creation-info This is the first step in the create workflow. A CreationInfo is required.
awaiting-feature-to-update This is the first step in the update workflow. A feature is required.
awaiting-feature-to-create The waiting period for when a feature is created beforte attribute/geometry edits can be performed.

Possible Values:"ready"|"disabled"|"editing-new-feature"|"editing-existing-feature"|"awaiting-update-feature-candidate"|"awaiting-feature-creation-info"|"awaiting-feature-to-update"|"awaiting-feature-to-create"

Default Value:disabled
syncing Booleanreadonly

When true, there is at least one edit request being processed.

A reference to the MapView or SceneView. This view provides the editable layers for the Editor widget.

Method Overview

Name Return Type Summary Class
Promise<void>

Cancels any active workflow.

more details
more detailsEditorViewModel
Promise<void>

This is applicable if there is an active update workflow.

more details
more detailsEditorViewModel
Promise<void>

Initiates the create workflow by displaying the panel where feature creation begins.

more details
more detailsEditorViewModel
Promise<void>

This method starts the Editor workflow where it waits for the feature to be selected.

more details
more detailsEditorViewModel
Promise<void>

Initiates the create workflow by displaying the FeatureTemplates panel.

more details
more detailsEditorViewModel
Promise<void>

Starts the update workflow at the feature geometry and attribute editing panel.

more details
more detailsEditorViewModel
Promise<void>

Starts the update workflow using the current selected feature.

more details
more detailsEditorViewModel
Promise<void>

Starts the Editor workflow where it waits for multiple features to be selected.

more details
more detailsEditorViewModel

Method Details

cancelWorkflow(){Promise<void>}

Cancels any active workflow.

Returns:
Type Description
Promise<void> Resolves once the workflow is canceled.
deleteFeatureFromWorkflow(){Promise<void>}

This is applicable if there is an active update workflow. If so, this method deletes the workflow feature.

Returns:
Type Description
Promise<void> Resolves once the active UpdateWorkflow is deleted.
See also:
startCreateWorkflowAtFeatureCreation(creationInfo){Promise<void>}

Initiates the create workflow by displaying the panel where feature creation begins. This method takes a CreationInfo object containing the layer(s) and template(s) to use.

Parameter:
creationInfo CreationInfo

An object containing information needed to create a new feature using the Editor widget.

Returns:
Type Description
Promise<void> Resolves when the CreateWorkflow initiates and displays the panel where feature creation begins.
See also:
startCreateWorkflowAtFeatureEdit(feature){Promise<void>}

This method starts the Editor workflow where it waits for the feature to be selected.

Parameter:
feature Graphic

The feature to be updated.

Returns:
Type Description
Promise<void> Resolves once the CreateWorkflow initiates, displays the panel where feature creation begins, and waits for the feature to be selected.
See also:
startCreateWorkflowAtFeatureTypeSelection(){Promise<void>}

Initiates the create workflow by displaying the FeatureTemplates panel.

Returns:
Type Description
Promise<void> Resolves when the CreateWorkflow is initiated and displays the FeatureTemplates panel.
See also:
startUpdateWorkflowAtFeatureEdit(feature){Promise<void>}

Starts the update workflow at the feature geometry and attribute editing panel.

Parameter:
feature Graphic

The feature to be updated.

Returns:
Type Description
Promise<void> Resolves once the UpdateWorkflow initiates the feature geometry and attribute editing panel.
See also:
startUpdateWorkflowAtFeatureSelection(){Promise<void>}

Starts the update workflow using the current selected feature.

Returns:
Type Description
Promise<void> Resolves once the UpdateWorkflow is initiated using the current selected feature.
See also:
startUpdateWorkflowAtMultipleFeatureSelection(){Promise<void>}

Starts the Editor workflow where it waits for multiple features to be selected.

Returns:
Type Description
Promise<void> Resolves once the UpdateWorkflow is initiated as it waits for multiple features to be selected.
See also:

Type Definitions

EditableItem

The editable item available within the map.

Properties:
layer FeatureLayer

Read-only The feature layer associated with the editable item.

supports String

Read-only The workflow type that this item supports. Can be either, update or create.