Документация
Справочник JavaScript API
2.1.64 (текущая версия)
collection
interactivityModel
Интерфейсы

option.Manager

Расширяет IOptionManager.

Менеджер опций. Позволяет задавать и получать значения опций по строковому ключу, а также разрешать значения опций в контексте существующей иерархии менеджеров опций.

Специальный ключ "preset" позволяет задать набор опций по умолчанию для данного менеджера. Значением опции "preset" может быть хэш вида {"имя опции": "значение опции"}, либо строковый идентификатор хэша опций в хранилище option.presetStorage. Данный хэш опций может также содержать поле с именем "preset", что позволяет наследовать значения опций от других наборов.

При поиске значения в иерархии сначала проверяются собственные опции, затем опции заданные с помощью ключа "preset", после чего происходит обращение к родителю, если он есть.

Для отслеживания изменений некоторых опций можно использовать Monitor.

Конструктор | Поля | События | Методы

Конструктор

option.Manager([options[, parent[, name]]])

Создает менеджер опций.

Параметры:

ПараметрЗначение по умолчаниюОписание
options

Тип: Object

Хэш опций.

parent

Тип: IOptionManager

Родительский менеджер опций.

name

Тип: String

Имя менеджера опций.

Примеры:

1.

 // Пример построения иерархии менеджеров опций.
 var parentManager = new ymaps.option.Manager({
         key1: '123'
     }),
     childManager = new ymaps.option.Manager({
         key2: '234'
     }, parentManager);
 // Выведет 123, значение берется из manager1.
 alert(childManager.get('key1'));
 // Выведет 234. значение берется из manager2.
 alert(childManager.get('key2'));
 // Перекрываем опцию.
 childManager.set('key1', '345');
 // Выведет 345, значение берется из manager2.
 alert(childManager.get('key1'));
 // Выведет 123, значение берется из manager1.
 alert(parentManager.get('key1'));

2.

 // Пример использования опции "preset".
 var optionManager = new ymaps.option.Manager({
         preset: 'islands#blueIcon'
     }),
     subOptionManager = new ymaps.option.Manager();
 // Данных нет, так как subOptionManager пуст.
 alert(subOptionManager.get('iconImageSize'));
 // Связываем два менеджера.
 subOptionManager.setParent(optionManager);
 // [37, 42] - значение получено из пресета в родительском менеджере.
 alert(subOptionManager.get('iconImageSize'));
 // Перекрываем значение iconImageSize на уровне subOptionManager.
 subOptionManager.set('iconImageSize', [10, 12]);
 // [10, 12] - значение получено из subOptionManager.
 alert(subOptionManager.get('iconImageSize'));
 // Отменяем перекрытие iconImageSize.
 subOptionManager.unset('iconImageSize');
 // [37, 42] - значение снова получено из пресета в родительском менеджере.
 alert(subOptionManager.get('iconImageSize'));

Поля

ИмяТипОписание
events IEventManager

Менеджер событий объекта.

Унаследовано от IFreezable.

События

ИмяОписание
change

Изменения произошли в значениях опций, либо в иерархии наследования опций. Экземпляр класса Event.

parentchange

Сменился родительский объект.

Поля данных:

  • oldParent - старый родитель;
  • newParent - новый родитель.

Унаследовано от IChild.

Методы

ИмяВозвращаетОписание
freeze()

IFreezable

Переводит объект в "замороженный" режим.

Унаследован от IFreezable.

get(key[, defaultValue])

Возвращает значение заданной опции в контексте существующей иерархии наследования опций. При вызове данного метода сначала происходит поиск значения в текущем менеджере опций, а затем, если значение не определено, поиск продолжается в иерархии родительских менеджеров.

Унаследован от IOptionManager.

getAll()

Object

Возвращает ссылку на внутренний хэш хранящий значения опций.

Унаследован от IOptionManager.

getName()

String

Возвращает имя менеджера опций.

Унаследован от IOptionManager.

getNative(key)

Object

Возвращает значение заданной опции, определенное на данном уровне иерархии опций, т.е. в данном менеджере.

Унаследован от IOptionManager.

getParent()

IOptionManager|null

Возвращает родительский менеджер опций.

Унаследован от IOptionManager.

isFrozen()

Boolean

Возвращает true, если объект находится в "замороженном" режиме, иначе false.

Унаследован от IFreezable.

resolve(key[, name])

Object

Метод, предназначенный для вызова дочерними менеджерами опций.

Унаследован от IOptionManager.

set(key[, value])

option.Manager

Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:

  • один аргумент, представляющий собой хеш вида {"имя опции": "значение опции"};
  • два аргумента, первый из которых - имя опции, второй - значение.

setName(name)

Задает имя менеджера опций.

Унаследован от IOptionManager.

setParent(parent)

IChild

Задает родительский менеджер опций.

Унаследован от IOptionManager.

unfreeze()

IFreezable

Переводит объект в активный режим.

Унаследован от IFreezable.

unset(keys)

option.Manager

Стирает значения заданных опций в данном менеджере.

unsetAll()

option.Manager

Стирает значения всех опции в данном менеджере.

Описание событий

change

Изменения произошли в значениях опций, либо в иерархии наследования опций. Экземпляр класса Event.

Описание методов

set

Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:

  • один аргумент, представляющий собой хеш вида {"имя опции": "значение опции"};
  • два аргумента, первый из которых - имя опции, второй - значение.

Возвращает cсылку на себя.

Параметры:

ПараметрЗначение по умолчаниюОписание
key *
[no-highlight[

* Обязательный параметр/опция.

]no-highlight]

Тип: Object|String

Имя опции, либо хеш вида {"имя опции": "значение опции"}.

value

Тип: Object

Значение опции, если в качестве первого аргумента было передано имя.

* Обязательный параметр/опция.

Примеры:

1.

// Задание нескольких опций через хэш.
myMap.options.set({
    dblClickZoomCentering: true,
    dblClickFloatZoom: true
});
// Генерируется одно событие option.Manager.event:change.

2.

// Задание опций раздельно.
myMap.options
    .set("dblClickZoomCentering", true)
    .set("dblClickFloatZoom", true);
// После каждого set будет генерироваться событие option.Manager.event:change.

3.

// Использование freeze для минимизации количества событий option.Manager.event:change.
myMap.options.freeze();
myMap.options.set({
    dblClickZoomCentering: true,
    dblClickFloatZoom: true
});
myMap.options.set('cursor', 'zoom');
myMap.unfreeze();
// Генерируется одно событие option.Manager.event:change.

unset

Стирает значения заданных опций в данном менеджере.

Возвращает cсылку на себя.

Параметры:

ПараметрЗначение по умолчаниюОписание
keys *
[no-highlight[

* Обязательный параметр/опция.

]no-highlight]

Тип: String|String[]

Имя опции или массив имен опций, значения которых должны быть аннулированы.

* Обязательный параметр/опция.

Пример:

map.options.unset(['dblClickZoomCentering', 'dblClickFloatZoom']);

unsetAll

{option.Manager} unsetAll()

Стирает значения всех опции в данном менеджере.

Возвращает cсылку на себя.

Пример:

var geoObject = new ymaps.Placemark([37, 55], {}, {preset:'islands#blueIcon'});
myMap.geoObjects.add(geoObject);
// Произвольным образом меняем стиль.
geoObject.options.set({
    iconLayout: 'default#image',
    iconImageHref: 'http://mysite.ru/icon.png',
    iconImageSize: [16, 16]
});
// Восстанавливаем первоначальный вид.
geoObject.options
    // Во избежание двойной реакции геообъекта
    // на изменение опций сначала вызываем freeze, а после задания
    // всех значений вызываем unfreeze.
    .freeze()
    .unsetAll()
    .set('preset','islands#blueIcon')
    .unfreeze();