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.

// Пример использования опции "предустановка".
var optionManager = new ymaps.option.Manager({
    preset: 'islands#blueIcon'
});
var 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

{option.Manager} set(key[, value])

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

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

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

Параметры:

Параметр

Значение по умолчанию

Описание

key*

Тип: 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

{option.Manager} unset(keys)

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

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

Параметры:

Параметр

Значение по умолчанию

Описание

keys*

Тип: String|String[]

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

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

Пример:

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

unsetAll

{option.Manager} unsetAll()

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

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

Пример:

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
    // Чтобы избежать двойной реакции объекта geo
     // чтобы опция изменилась, сначала мы вызываем "заморозку", а затем после
    // установив все значения, мы называем их "разморозкой".
    .freeze()
    .unsetAll()
    .set('preset','islands#blueIcon')
    .unfreeze();
Следующая