option.Manager
Расширяет IOptionManager.
Менеджер опций. Позволяет задавать и получать значения опций по строковому ключу, а также разрешать значения опций в контексте существующей иерархии менеджеров опций.
Специальный ключ "preset" позволяет задать набор опций по умолчанию для данного менеджера. Значением опции "preset" может быть хэш вида {"имя опции": "значение опции"}, либо строковый идентификатор хэша опций в хранилище option.presetStorage. Данный хэш опций может также содержать поле с именем "preset", что позволяет наследовать значения опций от других наборов.
При поиске значения в иерархии сначала проверяются собственные опции, затем опции заданные с помощью ключа "preset", после чего происходит обращение к родителю, если он есть.
Для отслеживания изменений некоторых опций можно использовать Monitor.
Конструктор | Поля | События | Методы
Конструктор
option.Manager([options[, parent[, name]]])
Создает менеджер опций.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Object Хэш опций. |
|
— |
Тип: IOptionManager Родительский менеджер опций. |
|
— |
Тип: 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'));
Поля
Имя |
Тип |
Описание |
Менеджер событий объекта. Унаследовано от IFreezable. |
События
Имя |
Описание |
Изменения произошли в значениях опций, либо в иерархии наследования опций. Экземпляр класса Event. |
|
Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
Методы
Имя |
Возвращает |
Описание |
freeze() |
Переводит объект в "замороженный" режим. Унаследован от IFreezable. |
|
get(key[, defaultValue]) |
Возвращает значение заданной опции в контексте существующей иерархии наследования опций. При вызове данного метода сначала происходит поиск значения в текущем менеджере опций, а затем, если значение не определено, поиск продолжается в иерархии родительских менеджеров. Унаследован от IOptionManager. |
|
getAll() |
Object |
Возвращает ссылку на внутренний хэш хранящий значения опций. Унаследован от IOptionManager. |
getName() |
String |
Возвращает имя менеджера опций. Унаследован от IOptionManager. |
Object |
Возвращает значение заданной опции, определенное на данном уровне иерархии опций, т.е. в данном менеджере. Унаследован от IOptionManager. |
|
IOptionManager|null |
Возвращает родительский менеджер опций. Унаследован от IOptionManager. |
|
isFrozen() |
Boolean |
Возвращает true, если объект находится в "замороженном" режиме, иначе false. Унаследован от IFreezable. |
Object |
Метод, предназначенный для вызова дочерними менеджерами опций. Унаследован от IOptionManager. |
|
Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:
|
||
Задает имя менеджера опций. Унаследован от IOptionManager. |
||
Задает родительский менеджер опций. Унаследован от IOptionManager. |
||
unfreeze() |
Переводит объект в активный режим. Унаследован от IFreezable. |
|
Стирает значения заданных опций в данном менеджере. |
||
unsetAll() |
Стирает значения всех опции в данном менеджере. |
Описание событий
change
Изменения произошли в значениях опций, либо в иерархии наследования опций. Экземпляр класса Event.
Описание методов
set
{option.Manager} set(key[, value])
Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:
- один аргумент, представляющий собой хеш вида {"имя опции": "значение опции"};
- два аргумента, первый из которых - имя опции, второй - значение.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Object|String Имя опции, либо хеш вида {"имя опции": "значение опции"}. |
— |
Тип: 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)
Стирает значения заданных опций в данном менеджере.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: 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();
Обязательный параметр.