A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Collection.html below:

Collection | API Reference | ArcGIS Maps SDK for JavaScript 4.33

ESM: import Collection from "@arcgis/core/core/Collection.js";

CDN: const Collection = await $arcgis.import("@arcgis/core/core/Collection.js");

Class: @arcgis/core/core/Collection

Since: ArcGIS Maps SDK for JavaScript 4.0

Collection stores an array of items of the same type. It provides useful utility methods for working with items in the Collection, including filter(), find(), and reduce().

A Collection can be of any type. For example, GraphicsLayer.graphics is a collection of graphics that are stored in the GraphicsLayer. You can use the methods found in the Collection class to add, remove, re-order, or manipulate graphics in a GraphicsLayer.

Another example of a Collection is Map.layers, which is a Collection of operational layers included in the Map.

// Removes a layer from the map using Collection.remove();
map.layers.remove(layer);

The change event fires each time an item is added, moved, or removed from the Collection.

As of version 4.18, you can iterate through the items of a Collection using for...of.

// a collection of graphics displayed in the view
const graphics = view.graphics;

for (const graphic of graphics){
  // do something with each view graphic
}

As of version 4.23, reactiveUtils can be utilized to watch for property changes on items in a Collection.

// reactiveUtils watch method can be used to watch the visible
// property of each layer within the map.allLayer's collection
const handle = reactiveUtils.watch(
  () => view.map.allLayers.every((layer) => layer.visible),
  (allVisible) => {
    console.log(`All layers are visible = ${allVisible}`);
  }
);
See also
Constructors
Collection Constructor new Collection(properties)

Parameter

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 Watch for changes topic.

Show inherited properties Hide inherited properties

Property Details
declaredClass

Inherited

Property declaredClass Stringreadonly

Since: ArcGIS Maps SDK for JavaScript 4.7 Accessor since 4.0, declaredClass added at 4.7.

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

The number of items in the Collection.

Method Overview

Show inherited methods Hide inherited methods

Name Return Type Summary Class add()

Adds a single item to the collection.

Collection addHandles()

Adds one or more handles which are to be tied to the lifecycle of the object.

Accessor addMany()

Adds multiple items to the collection.

Collection at() *|undefined

Returns the item at the specified index, allowing for positive and negative integers.

Collection clone() Collection

Creates a deep clone of the Collection.

Collection concat() Collection

Creates a new Collection containing the items in the original Collection joined with the items in the input array or Collection.

Collection destroyAll()

Removes and destroys instances of all the items of the Collection.

Collection destroyMany()

*

Removes each item in the input array and destroys it.

Collection drain()

Removes all the items of the Collection and executes the input function for each item.

Collection emit() Boolean

Emits an event on the instance.

Collection every() Boolean

Determines whether all items in the Collection pass a test defined by callback.

Collection filter() Collection

Filters the Collection's items based on a test defined by the callback function.

Collection find() *|undefined

Returns an item in the Collection if that item passes a test as defined in the callback function.

Collection findIndex() Number

Returns the index of an item in the Collection if that item passes a test as defined in the callback function.

Collection flatten() Collection

Flattens a hierarchical Collection containing at least one child collection.

Collection forEach()

Executes the input function for each item in the Collection.

Collection getItemAt() *|undefined

Returns the item at the specified index.

Collection hasEventListener() Boolean

Indicates whether there is an event listener on the instance that matches the provided event name.

Collection hasHandles() Boolean

Returns true if a named group of handles exist.

Accessor includes() Boolean

Tests if an item is present in the new Collection.

Collection indexOf() Number

Returns the index of an element in the collection.

Collection isCollection() Boolean

Determines whether the passed value is a Collection.

Collection join() String

Creates a string representation of the items in the Collection.

Collection lastIndexOf() Number

Returns the last index of an element in the collection.

Collection map() Collection

Passes each Collection item into the callback function and returns a new array of the returned values.

Collection ofType() Object

Creates a subclass of Collection containing a typed object.

Collection on() Object

Registers an event handler on the instance.

Collection pop() *|undefined

Removes the last item from the collection and returns it.

Collection push() Number

Adds an item(s) to the end of the collection.

Collection reduce()

*

Reduces all items in the collection (from left to right) into a single variable using callback.

Collection reduceRight()

*

Reduces all items in the collection (from right to left) into a single variable using callback.

Collection remove()

Removes an item from the collection.

Collection removeAll()

Removes all items from the collection.

Collection removeAt() *|undefined

Removes an item from the collection at a specified index.

Collection removeHandles()

Removes a group of handles owned by the object.

Accessor removeMany()

*

Removes each item in the input array.

Collection reorder() *|undefined

Moves an item in the Collection to a specified index.

Collection reverse() Collection

Reverses the collection in place.

Collection shift() *|undefined

Removes the first item from the collection (at index 0), and returns it.

Collection slice() Collection

Creates a new Collection comprised of a portion of the original Collection.

Collection some() Boolean

Determines whether an item in the Collection passes a test defined by callback.

Collection sort()

Sorts the Collection in place.

Collection splice() Array

Removes existing items and/or adds new items to the collection.

Collection toArray() Array

Returns a new array object containing the Collection's items.

Collection unshift() Number

Adds one or more items to the beginning of the collection.

Collection Method Details
add Method add(item, index)

Adds a single item to the collection. The change event is fired after an item is added to the Collection.

Parameters

item *

The item to add.

optional

Zero-based index of where in the collection to add the item. If not specified, the items will be added at the end.

Example

let gpc = new Graphic();  // Creates a new graphic
let layer = new GraphicsLayer(); // Creates a new graphics layer
layer.graphics.add(gpc);  // Adds graphic to layer's graphics collection
addHandles

Inherited

Method addHandles(handleOrHandles, groupKey)

Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, addHandles added at 4.25.

Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

this.addHandles(handle);

// Destroy the object
this.destroy();

Parameters

Handles marked for removal once the object is destroyed.

groupKey *

optional

Key identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.

addMany Method addMany(items, index)

Adds multiple items to the collection. The change event is fired after items are added to the Collection.

Parameters

An array or collection of items to add.

optional

Zero-based index of where in the collection to add the items. If not specified, the items will be added at the end.

Example

// Creates two new graphics
let gpc1 = new Graphic();
let gpc2 = new Graphic();

let layer = new GraphicsLayer(); // Creates a new graphics layer

// Adds both graphics to layer's graphics collection
layer.graphics.addMany([gpc1, gpc2]);

Since: ArcGIS Maps SDK for JavaScript 4.23 Collection since 4.0, at added at 4.23.

Returns the item at the specified index, allowing for positive and negative integers. Negative integers count back from the last item in the array.

Parameter

Index of the item in the Collection to retrieve. It can be a relative index from the end of the Collection.

Returns

Type Description * | undefined The item in the Collection stored at the specified index.

Example

// get the layer at the first position
let firstLayer = map.layers.at(0);
// get the layer at the last position
let lastLayer = map.layers.at(-1);

Creates a deep clone of the Collection. To create a shallow clone of the collection, use slice().

Returns

Type Description Collection A clone of the Collection that invoked this method.

Example

// slides is a clone of the scene slides
let slides = scene.presentation.slides.clone();

Creates a new Collection containing the items in the original Collection joined with the items in the input array or Collection.

Parameter

The array or Collection to append to the existing Collection.

Returns

Type Description Collection A new Collection comprised of the items in the Collection that invoked this method combined with the input items.

Example

// creating a collection of all the basemap's layers.
let basemap = map.basemap;
let basemapLayers = basemap.baseLayers.concat(basemap.referenceLayers);
destroyAll Method destroyAll()

Since: ArcGIS Maps SDK for JavaScript 4.30 Collection since 4.0, destroyAll added at 4.30.

Removes and destroys instances of all the items of the Collection.

destroyMany Method destroyMany(items){*}

Since: ArcGIS Maps SDK for JavaScript 4.30 Collection since 4.0, destroyMany added at 4.30.

Removes each item in the input array and destroys it. If an item is present multiple times in the collection, only the first occurrence is removed and destroyed. The change event is fired after an item is removed from the Collection.

Returns

Type Description * The removed and destroyed items present in the collection.
drain Method drain(callback)

Since: ArcGIS Maps SDK for JavaScript 4.33 Collection since 4.0, drain added at 4.33.

Removes all the items of the Collection and executes the input function for each item.

Parameter

The function to call for each item in the Collection.

emit Method emit(type, event){Boolean}

Since: ArcGIS Maps SDK for JavaScript 4.5 Collection since 4.0, emit added at 4.5.

Emits an event on the instance. This method should only be used when creating subclasses of this class.

Parameters

The name of the event.

optional

The event payload.

Returns

Type Description Boolean true if a listener was notified
every Method every(callback){Boolean}

Determines whether all items in the Collection pass a test defined by callback. Each item in the Collection is passed into the callback until one returns a value of false.

Returns

Type Description Boolean Returns true if every call to the callback function returned true. Returns false if at least one call to the callback returned false.

Example

let meetsStandardSize = graphicsLayer.graphics.every(function(item, i){
  // Tests each geometry's area to see if it is greater than 1,000 acres
  return calculateArea(item.geometry) > 1000;
});

Filters the Collection's items based on a test defined by the callback function. Each item is passed into the callback function, which returns true if the item passes the test and false if it does not.

Parameter

The function that defines a test for determining whether to return the item in a new Collection.

Returns

Type Description Collection Returns a new Collection containing the items that passed the filter test.

Example

// filteredLayers is a Collection of all the non-visible layers in the map
let filteredLayers = map.layers.filter(function(layer){
  return !layer.visible;
});

Returns an item in the Collection if that item passes a test as defined in the callback function. Each item is passed into the callback function, which returns true if the item passes the test and false if it does not.

Parameter

The testing function that will assess each item in the Collection. Returns true if an item passes the test and false if it fails.

Returns

Type Description * | undefined The first item in the Collection that satisfies the test function.

Example

// If the id of a map layer is already known, get the layer that matches the id
let myLayer = map.layers.find(function(layer){
  return layer.id === "speciesLyr01";
});
// myLayer references the layer in map with ID "speciesLyr01"
findIndex Method findIndex(callback){Number}

Returns the index of an item in the Collection if that item passes a test as defined in the callback function. Each item is passed into the callback function, which returns true if the item passes the test and false if it does not.

Parameter

The testing function that will assess each item in the Collection. Returns true if an item passes the test and false if it fails.

Returns

Type Description Number Returns the index of the Collection item that satisfies the test function. If an item fails the test, -1 is returned.

Example

// gpcIndex is assigned the index of the first graphic whose name
// property is 'Redlands'. This result can be used in getItemAt()
let gpcIndex = graphicsLyr.graphics.findIndex(function(item){
  return item.attributes.name === "Redlands";
});

Flattens a hierarchical Collection containing at least one child collection. Each item in the collection is passed into the callback function, which should check for child collections specified by the developer. A flat collection of all items (parent and children) is returned.

This is useful for scenarios where the user would like to search all the layers in a map, including a GroupLayer's layers and a MapImageLayer's sublayers. The callback should return the sub-collection of the item. If multiple levels of collections exist in the hierarchy, then this method recursively executes for all sub-collections.

Parameter

A function that will assess each item in the Collection.

Returns

Type Description Collection Returns a flat collection of all items in the original collection and their children.

Example

// create a MapImageLayer with several sublayers and add to a map
// containing another GraphicsLayer
let layer = new MapImageLayer({ sublayers: [ ... ] });
let map = new Map({
  layers: [ layer, new GraphicsLayer() ]
});

// A flat collection of all layers and sublayers
// (if layer is a MapImageLayer) in the map.
// This collection may be searched or used for other purposes
let allLayersAndSublayers = map.layers.flatten(function(item){
  return item.layers || item.sublayers;
});
forEach Method forEach(callback)

Executes the input function for each item in the Collection.

Parameter

The function to call for each item in the Collection.

Example

graphicsLayer.graphics.forEach(function(item, i){
  // Do something here to each graphic like calculate area of its geometry
  calculateArea(item.geometry);
});
getItemAt Method getItemAt(index){* |undefined}

Returns the item at the specified index.

Parameter

Zero-based index of the item in the Collection to retrieve.

Returns

Type Description * | undefined The item in the Collection stored at the specified index.

Example

// Assigns the base layer at index 0 to baseLayer
let baseLayer = map.basemap.baseLayers.getItemAt(0);
hasEventListener Method hasEventListener(type){Boolean}

Indicates whether there is an event listener on the instance that matches the provided event name.

Returns

Type Description Boolean Returns true if the class supports the input event.
hasHandles

Inherited

Method hasHandles(groupKey){Boolean}

Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, hasHandles added at 4.25.

Returns true if a named group of handles exist.

Parameter

groupKey *

optional

A group key.

Returns

Type Description Boolean Returns true if a named group of handles exist.

Example

// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}
includes Method includes(searchElement){Boolean}

Tests if an item is present in the new Collection.

Parameter

searchElement *

The item to search for in the collection.

Returns

Type Description Boolean true if the item is in the collection.

Example

// check if a layer is in the map's operational layers.
if (view.map.layers.includes(myLayer)) {
  // ...
}
indexOf Method indexOf(searchElement, fromIndex){Number}

Returns the index of an element in the collection.

Parameters

searchElement *

Item to search for in the collection.

optional

Use if you don't want to search the whole collection or you don't want to search from the start.

Returns

Type Description Number The location of the first match found in the collection, or -1 if there is no match.

Example

// index is the index of the first graphic in the
// graphics layer that matches the input graphic
let index = graphicsLayer.graphics.indexOf(graphic);
isCollection Method isCollection(value){Boolean}static

Determines whether the passed value is a Collection.

Parameter

value *

The value to be checked.

Returns

Type Description Boolean true if the test passes, false otherwise.
join Method join(separator){String}

Creates a string representation of the items in the Collection.

Parameter

optional

Default Value: ,

The separator used between each item in the final string.

Returns

Type Description String The string representation of the items.

Example

let stringCollection = new Collection(["how", "are", "you", "doing?"]);
let phrase = stringCollection.join(" ");

// Prints "how are you doing?"
console.log(phrase);
lastIndexOf Method lastIndexOf(searchElement, fromIndex){Number}

Returns the last index of an element in the collection.

Parameters

searchElement *

Item to search for in the collection.

optional

Use if you don't want to search the whole collection, or you don't want to search from the end.

Returns

Type Description Number The location of the last match found in the collection, or -1 if there is no match.

Example

// index is the index of the first graphic in the
// graphics layer that matches the input graphic
let index = graphicsLayer.graphics.lastIndexOf(graphic);

Passes each Collection item into the callback function and returns a new array of the returned values. For example, if you have a Collection of numbers and would like to add each number by 10, you can use map() to create a new Collection with the same numbers incremented by 10.

Parameter

The function that processes each item in the Collection and returns a new value at the same index of the original item.

Returns

Type Description Collection Returns a new collection containing the new items generated from the callback.

Example

// Gets the geometries of the graphics and assigns them to a new Collection
let geometries = graphicsLayer.graphics.map(function(item, i){
  return item.geometry;
});
ofType Method ofType(type){Object}static

Creates a subclass of Collection containing a typed object.

Parameter

The type to assign the Collection.

Returns

Type Description Object The typed collection.

Example

const [Collection, Point] = await $arcgis.import([
  "@arcgis/core/core/Collection.js",
  "@arcgis/core/geometry/Point.js"
]);
let PointCollection = Collection.ofType(Point);
let collection = new PointCollection();
collection.add([-100,40]);
let point = collection.at(0);
// point.x = -100; point.y = 40
});
on Method on(type, listener){Object}

Registers an event handler on the instance. Call this method to hook an event with a listener.

Returns

Type Description Object Returns an event handler with a remove() method that should be called to stop listening for the event(s). Property Type Description remove Function When called, removes the listener from the event.

Example

view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});

Removes the last item from the collection and returns it.

Returns

Type Description * | undefined The last item in the collection.

Example

// Removes the last layer in the map and stores it in lastLayer
let lastLayer = map.layers.pop();
push Method push(item){Number}

Adds an item(s) to the end of the collection.

Parameter

item *

An item or comma-separated list of items to add to the end of the collection.

Returns

Type Description Number The new length of the collection.

Examples

// Adds a new graphic to the end of the graphics collection on a GraphicsLayer
graphicsLyr.graphics.push(newGraphic);
// Adds three new graphics to the end of the GraphicsLayer's graphics collection
graphicsLyr.graphics.push(g1, g2, g3);
reduce Method reduce(callback){*}

Reduces all items in the collection (from left to right) into a single variable using callback.

Parameter

The function that processes each item in the Collection and appends it to the previous item.

Returns

Type Description * Returns the value representing the reduction of the Collection's items.
reduceRight Method reduceRight(callback, initialValue){*}

Reduces all items in the collection (from right to left) into a single variable using callback.

Parameters

The function that processes each item in the Collection and appends it to the previous item.

initialValue *

optional

Item to use as the first element to process in callback.

Returns

Type Description * Returns the value representing the reduction of the Collection's items.
remove Method remove(item)

Removes an item from the collection. The change event is fired after an item is removed from the Collection.

Parameter

item *

The item to remove.

Example

let layer = map.layers.at(4);
// Removes the fifth layer from the map
map.layers.remove(layer);
removeAll Method removeAll()

Removes all items from the collection.

Example

// Removes all layers from the map
map.layers.removeAll();
removeAt Method removeAt(index){* |undefined}

Removes an item from the collection at a specified index. The change event is fired after an item is removed from the Collection.

Parameter

The index of the item to remove.

Returns

Type Description * | undefined The removed item if present in the collection, undefined otherwise.

Example

// Removes the layer at index 4 of the map
map.layers.removeAt(4);
removeHandles

Inherited

Method removeHandles(groupKey)

Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, removeHandles added at 4.25.

Removes a group of handles owned by the object.

Parameter

groupKey *

optional

A group key or an array or collection of group keys to remove.

Example

obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
removeMany Method removeMany(items){*}

Removes each item in the input array. If an item is present multiple times in the collection, only the first occurrence is removed. The change event is fired after an item is removed from the Collection.

Returns

Type Description * The removed items present in the collection.

Example

let refLayers = [refLyr1, refLyr2, refLyr3];
// Removes three reference layers in the refLayers
// collection from the basemap's referenceLayers
map.basemap.referenceLayers.removeMany(refLayers);
reorder Method reorder(item, index){* |undefined}

Moves an item in the Collection to a specified index. The change event is fired after an item is moved in the Collection.

Parameters

item *

The item to move.

The index to move the item to.

Returns

Type Description * | undefined The item that was moved. undefined if item is not in the collection

Example

// Get the first two layers in a map
let layer1 = map.layers.at(0);
let layer2 = map.layers.at(1);

// Moves the second layer to the first position in the map.layers Collection
// effectively swapping the positions of layer1 and layer2
map.layers.reorder(layer2, 0);

Reverses the collection in place.

Returns

Type Description Collection The reversed collection.

Example

// Reverse layers from the map
map.layers.reverse();

Removes the first item from the collection (at index 0), and returns it. The remaining items of the collection are then shifted down one index from their previous location.

Returns

Type Description * | undefined The first item in the collection.

Example

// Removes the first layer in the map and stores it in firstLyr
let firstLyr = map.layers.shift();

Creates a new Collection comprised of a portion of the original Collection.

Parameters

optional

The index of the first item to extract.

optional

The index of the last item to extract.

Returns

Type Description Collection Returns a new Collection containing the items in the specified range.

Example

// get the graphics from index 50 to 100;
let selection = graphicsLayer.graphics.slice(50, 100);
some Method some(callback){Boolean}

Determines whether an item in the Collection passes a test defined by callback. Each item in the Collection is passed into the callback until one returns a value of true.

Parameter

The function that defines the test for each Collection item.

Returns

Type Description Boolean Returns true if any of the items in the Collection pass the test defined in callback. Returns false if all items fail the test.

Example

// If at least one of the point graphics has a geometry whose
// elevation is above 1000m, then passes will have a value of true.
// Otherwise, it will be false.
let passes = graphicsLayer.graphics.some(function(item, i){
  return item.geometry.z > 1000;
});
sort Method sort(compareFunction)

Sorts the Collection in place.

Parameter

optional

The function that defines a comparison of two items in the collection.

Example

// Sort graphics based on their elevation or z-value
let sortedGraphics = graphicsLayer.graphics.sort(function(a, b){
  if(a.geometry.z > b.geometry.z){
    return 1;
  }
  else if (a.geometry.z < b.geometry.z){
    return -1;
  }
  else {
    return 0;
  }
});
splice Method splice(start, deleteCount, items){Array}

Removes existing items and/or adds new items to the collection.

Parameters

Index at which to start changing the collection.

optional

Indicates the number of collection items to remove. If omitted, or if greater than or equal to the number of elements after the position specified by start, then all the elements from start to the end will be deleted. If 0 or undefined is used, then no elements are removed and at least one new item should be added in the items parameter.

items *

optional

The item or comma-separated list of items to add to the collection.

Returns

Type Description Array An array of the deleted items formerly part of the collection.

Examples

// map.layers is a collection of 6 layers
// Adds a seventh layer to the map at index 3
map.layers.splice(3, 0, layer7);
// Removes two layers starting from index 2 and adds the
// specified layers in the positions of the former layers
let oldLayers = map.layers.splice(2, 2, layer8, layer9, layer10);

// oldLayers = [layer2, layer3]
toArray Method toArray(){Array}

Returns a new array object containing the Collection's items.

Returns

Type Description Array An array containing the Collection's items.

Example

// Creates an array populated with the map's layers
let mapLayersArray = map.layers.toArray();
unshift Method unshift(items){Number}

Adds one or more items to the beginning of the collection.

Parameter

items *

The item(s) to add to the beginning of the collection.

Returns

Type Description Number The new length of the collection.

Example

// If a map's basemap has 3 baseLayers: baseLyr0, baseLyr1, baseLyr2
map.basemap.baseLayers.unshift(baseLyr3);

// Now the baseLayers collection is: baseLyr3, baseLyr0, baseLyr1, baseLyr2
Type Definitions
ItemCallback Type Definition ItemCallback(item, index)

The function that is called for each Collection item.

Parameters

item *

The current item being assessed in the collection.

The index of the item being assessed.

ItemCompareCallback Type Definition ItemCompareCallback(firstItem, secondItem){Number}

The function that defines a comparison.

Parameters

firstItem *

the first item in the comparison.

secondItem *

the second item in the comparison.

Returns

Type Description Number -1 if firstItem is smaller than secondItem, 1 if it is larger, and 0 if both are equal.
ItemMapCallback Type Definition ItemMapCallback(item, index){*}

The function that defines a mapping and is called for each Collection item.

Parameters

item *

The current item being assessed in the collection.

The index of the item being assessed.

Returns

Type Description * the new value that replaces item.
ItemReduceCallback Type Definition ItemReduceCallback(previousValue, currentValue, index){*}

The function that defines a reducer.

Parameters

previousValue *

The item previously reduced value.

currentValue *

The current item being assessed in the collection.

The index of the item being assessed.

Returns

Type Description * the value to be passed to the next reducer.
ItemTestCallback Type Definition ItemTestCallback(item, index){Boolean}

The function that defines a test and is called for each Collection item.

Parameters

item *

The current item being assessed in the collection.

The index of the item being assessed.

Returns

Type Description Boolean true if the test passes, false otherwise.
Event Overview Name Type Summary Class after-add {item: *}

Fires after an item has been added to the collection.

Collection after-changes

Fires after an item has been added, reordered or removed from the collection.

Collection after-remove {item: *}

Fires after an item has been removed from the collection.

Collection before-add {cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function}

Fires before an item is added to the collection.

Collection before-changes {cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function}

Fires before any modifications are performed on the collection.

Collection before-remove {cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function}

Fires before an item has been removed from the collection.

Collection change {added: Array,moved: Array,removed: Array}

Fires after an item has been added, reordered, or removed from the Collection.

Collection Event Details
after-add Event after-add

Fires after an item has been added to the collection.

Property

The item added to the collection.

Example

// indicates a layer has been added to the map
map.layers.on("after-add", function(event){
  console.log(event.item, " has been added to the map.");
});
after-changes Event after-changes

Fires after an item has been added, reordered or removed from the collection.

Example

map.layers.on("after-changes", function(event){
  console.log(event, " layer was added/removed from the map.");
});
after-remove Event after-remove

Fires after an item has been removed from the collection.

Property

The item to remove from the collection.

Example

// indicates a layer has been removed from the map
map.layers.on("after-remove", function(event){
  console.log(event.item, " has been removed from the map.");
});
before-add Event before-add

Fires before an item is added to the collection. This event can be used to prevent an item from being added to the collection by cancelling it with the event.preventDefault() method.

Properties

Indicates if the change event can be cancelled.

Indicates if this event has previously been cancelled by another event handler.

The item to add to the collection.

A method that prevents the item from being added to the collection.

Example

// prevents a layer from being added to the map more than once.
map.layers.on("before-add", function(event){
   if(map.layers.includes(event.item)){
     event.preventDefault();
     console.log("layer already exists in map.");
   }
});
before-changes Event before-changes

Fires before any modifications are performed on the collection. This event can be used to prevent an item from being added or removed from the collection by cancelling it with the event.preventDefault() method.

Properties

Indicates if the change event can be cancelled.

Indicates if this event has previously been cancelled by another event handler.

The item to add or remove from the collection.

A method that prevents the item from being added or removed from the collection.

Example

map.layers.on("before-changes", function(event){
  // prevents layers from being added/removed from the map
  event.preventDefault();
});
before-remove Event before-remove

Fires before an item has been removed from the collection. This event can be used to prevent an item from being removed from the collection by cancelling it with the event.preventDefault() method.

Properties

Indicates if the change event can be cancelled.

Indicates if this event has previously been cancelled by another event handler.

The item to remove from the collection.

A method that prevents the item from being removed from the collection.

Example

// prevents a layer from being removed from the basemap
map.basemap.baseLayers.on("before-remove", function(event){
   if(map.basemap.baseLayers.includes(event.item)){
     event.preventDefault();
     console.log("layer cannot be removed from basemap.");
   }
});

Fires after an item has been added, reordered, or removed from the Collection. Using methods of other classes that affect properties of type Collection will also cause this event to fire, such as Map.add(), Map.remove(), Map.reorder().

For example, map.layers.add(newLyr) and map.add(newLyr) which uses Map.add() to add a new layer to the map.layers collection will cause this event to fire.

The change event can be used to notify the developer/user of changes to the collection. The arrays in the collection event objects are reused. Make a copy of the collection event object if these objects need to be processed in your application.

Example

// This function will fire each time a layer is either added,
// moved, or removed from the map.layers Collection
// make a copy of the collection event object for processing
map.layers.on("change", function(event){
  const copiedEvent = JSON.parse(JSON.stringify(event));
  let newLayers = copiedEvent.added; // An array of layers added to the map.layers Collection
  let reorderedLayers = copiedEvent.moved;  // An array of layers moved in the Collection
  let removedLayers = copiedEvent.removed;  // An array of layers removed from map
});

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4