---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Monitor.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/en/llms.txt

# Monitor

Object that tracks changes to certain data fields in the specified data manager. It can also be used for tracking changes to options.

[Constructor](#constructor-summary) | [Methods](#methods-summary)

## Constructor {#constructor-summary}

```javascript
Monitor(dataManager)
```

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`dataManager`](#param-dataManager)[*](*star) | — | Type: [IDataManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IDataManager.md)\|[IOptionManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/IOptionManager.md)

Data manager. ||
|#

\* Mandatory parameter/option.

**Example:**

```javascript
// Tracks changes to placemark options.
var placemark = new ymaps.Placemark([0, 0]);
var optionMonitor = new ymaps.Monitor(placemark.options);
optionMonitor.add("cursor", function (newValue) {
    alert("cursor: " + newValue);
});
myMap.geoObjects.add(placemark);
// Outputs the string "cursor: arrow".
myMap.options.set({
    geoObjectCursor: "arrow"
});
```

## Methods {#methods-summary}

#|
|| **Name** | **Returns** | **Description** ||
|| [add](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#add)([name](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#add-param-name), [changeCallback](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#add-param-changeCallback)[, [context](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#add-param-context)[, [params](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#add-param-params)]]) | [Monitor](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md) | Enables monitoring particular fields or a group of data fields. ||
|| [forceChange](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#forceChange)() | [Monitor](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md) | Initializes checking for changes to values of the monitored data fields. ||
|| [get](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#get)([name](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#get-param-name)) | Object | Returns the current value of one of the monitored data fields. ||
|| [remove](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#remove)([name](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#remove-param-name)) | [Monitor](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md) | Disables monitoring particular fields or a group of data fields. ||
|| [removeAll](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md#removeAll)() | [Monitor](https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Monitor.md) | Disables monitoring for all data fields.||
|#

## Methods details {#method_detail}

### add {#add}

```javascript
{Monitor} add(name, changeCallback[, context[, params]])
```

Enables monitoring particular fields or a group of data fields.

**Returns** self-reference.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`name`](#add-param-name)[*](*star) | — | Type: String\|String[]

Name or array of names of data fields that monitoring is being set up for. ||
|| [`changeCallback`](#add-param-changeCallback)[*](*star) | — | Type: Function

Handler for changes to data fields, or one of the data fields from a group. ||
|| [`context`](#add-param-context) | — | Type: Object

Context for the handler of data changes and for options handlers. ||
|| [`params`](#add-param-params) | — | Type: Object

Optional parameters. ||
|| [`params.compareCallback`](#add-param-params.compareCallback) | — | Type: Function

Handler that compares the old and new values of data fields. Takes two arguments: the old value and the new value. Lower priority relative to handlers set using the compareCallbacks parameter. ||
|| [`params.compareCallbacks`](#add-param-params.compareCallbacks) | — | Type: Object

Hash in the format {data field name: reference to handler}. This parameter is for setting individual handlers for comparing values for various data fields in a group. ||
|| [`params.defaultValue`](#add-param-params.defaultValue) | — | Type: Object

The default value that is used if the data field is not defined. ||
|| [`params.defaultValues`](#add-param-params.defaultValues) | — | Type: Object

Hash in the format {data field name: default value}. This parameter is for setting individual default values for various data fields in a group. ||
|| [`params.resolveCallback`](#add-param-params.resolveCallback) | — | Type: Function

Handler that allows the data field value. Takes two arguments; the data field name and the reference to the data manager. Lower priority relative to handlers set using the resolveCallbacks parameter. ||
|| [`params.resolveCallbacks`](#add-param-params.resolveCallbacks) | — | Type: Object

Hash in the format {data field name: reference to handler}. This parameter is for setting individual handlers for allowing values for various data fields in a group. ||
|#

\* Mandatory parameter/option.

### forceChange {#forceChange}

```javascript
{Monitor} forceChange()
```

Initializes checking for changes to values of the monitored data fields.

**Returns** self-reference.

### get {#get}

```javascript
{Object} get(name)
```

**Returns** the current value of one of the monitored data fields.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`name`](#get-param-name)[*](*star) | — | Type: String

Data field name. ||
|#

\* Mandatory parameter/option.

### remove {#remove}

```javascript
{Monitor} remove(name)
```

Disables monitoring particular fields or a group of data fields.

**Returns** self-reference.

**Parameters:**

#|
|| **Parameter** | **Default value** | **Description**  ||
|| [`name`](#remove-param-name)[*](*star) | — | Type: String\|String[]

Name or array of names of data fields that monitoring is being disabled for. ||
|#

\* Mandatory parameter/option.

### removeAll {#removeAll}

```javascript
{Monitor} removeAll()
```

Disables monitoring for all data fields.

**Returns** self-reference.

[*star]: Mandatory parameter/option.