option.Manager
Расширяет IOptionManager.
Менеджер опций. Позволяет задавать и получать значения опций по строковому ключу, а также разрешать значения опций в контексте существующей иерархии менеджеров опций.
Специальный ключ "preset" позволяет задать набор опций по умолчанию для данного менеджера. Значением опции "preset" может быть хэш вида {"имя опции": "значение опции"}, либо строковый идентификатор хэша опций в хранилище option.presetStorage. Данный хэш опций может также содержать поле с именем "preset", что позволяет наследовать значения опций от других наборов.
При поиске значения в иерархии сначала проверяются собственные опции, затем опции заданные с помощью ключа "preset", после чего происходит обращение к родителю, если он есть.
Для отслеживания изменений некоторых опций можно использовать Monitor.
Конструктор | Поля | События | Методы
Конструктор
Создает менеджер опций.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
options | — | Тип: Object Хэш опций. |
parent | — | Тип: IOptionManager Родительский менеджер опций. |
name | — | Тип: String Имя менеджера опций. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
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: 'twirl#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. |
Имя | Тип | Описание |
---|---|---|
events | IEventManager | Менеджер событий объекта. Унаследовано от IFreezable. |
События
Имя | Описание |
---|---|
change | Изменение опций. Унаследовано от IOptionManager. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
Имя | Описание |
---|---|
change | Изменение опций. Унаследовано от IOptionManager. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
Методы
Имя | Возвращает | Описание |
---|---|---|
freeze() | Переводит объект в "замороженный" режим. Унаследован от IFreezable. | |
get(key[, defaultValue]) | Возвращает значение заданной опции в контексте существующей иерархии наследования опций. При вызове данного метода сначала происходит поиск значения в текущем менеджере опций, а затем, если значение не определено, поиск продолжается в иерархии родительских менеджеров. Унаследован от IOptionManager. | |
getAll() | Object | Returns ссылку на внутренний хэш хранящий значения опций. Унаследован от IOptionManager. |
getName() | String | Returns имя менеджера опций. Унаследован от IOptionManager. |
getNative(key) | Object | Returns значение заданной опции, определенное на данном уровне иерархии опций, т.е. в данном менеджере. Унаследован от IOptionManager. |
getParent() | IOptionManager|null | Returns родительский менеджер опций. Унаследован от IOptionManager. |
isFrozen() | Boolean | Returns true, если объект находится в "замороженном" режиме, иначе false. Унаследован от IFreezable. |
resolve(key[, name]) | Object | Метод, предназначенный для вызова дочерними менеджерами опций. Унаследован от IOptionManager. |
set(key[, value]) | Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:
| |
setName(name) | Задает имя менеджера опций. Унаследован от IOptionManager. | |
setParent(parent) | Задает родительский менеджер опций. Унаследован от IOptionManager. | |
unfreeze() | Переводит объект в активный режим. Унаследован от IFreezable. | |
unset(keys) | Стирает значения заданных опций в данном менеджере. | |
unsetAll() | Стирает значения всех опции в данном менеджере. |
Имя | Возвращает | Описание |
---|---|---|
freeze() | Переводит объект в "замороженный" режим. Унаследован от IFreezable. | |
get(key[, defaultValue]) | Возвращает значение заданной опции в контексте существующей иерархии наследования опций. При вызове данного метода сначала происходит поиск значения в текущем менеджере опций, а затем, если значение не определено, поиск продолжается в иерархии родительских менеджеров. Унаследован от IOptionManager. | |
getAll() | Object | Returns ссылку на внутренний хэш хранящий значения опций. Унаследован от IOptionManager. |
getName() | String | Returns имя менеджера опций. Унаследован от IOptionManager. |
getNative(key) | Object | Returns значение заданной опции, определенное на данном уровне иерархии опций, т.е. в данном менеджере. Унаследован от IOptionManager. |
getParent() | IOptionManager|null | Returns родительский менеджер опций. Унаследован от IOptionManager. |
isFrozen() | Boolean | Returns true, если объект находится в "замороженном" режиме, иначе false. Унаследован от IFreezable. |
resolve(key[, name]) | Object | Метод, предназначенный для вызова дочерними менеджерами опций. Унаследован от IOptionManager. |
set(key[, value]) | Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:
| |
setName(name) | Задает имя менеджера опций. Унаследован от IOptionManager. | |
setParent(parent) | Задает родительский менеджер опций. Унаследован от IOptionManager. | |
unfreeze() | Переводит объект в активный режим. Унаследован от IFreezable. | |
unset(keys) | Стирает значения заданных опций в данном менеджере. | |
unsetAll() | Стирает значения всех опции в данном менеджере. |
Описание методов
set
{option.Manager} set(key[, value])
- один аргумент, представляющий собой хеш вида {"имя опции": "значение опции"};
- два аргумента, первый из которых - имя опции, второй - значение.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
key * | — | Тип: Object|String Имя опции, либо хеш вида {"имя опции": "значение опции"}. |
value | — | Тип: Object Значение опции, если в качестве первого аргумента было передано имя. |
* Обязательный параметр/опция.
Примеры:
1.
//Задание нескольких опций через хэш.
myMap.options.set({
dblClickZoomCentering: true,
dblClickFloatZoom: true
});
// Генерируется одно событие OptionManager.change.
2.
// Задание опций раздельно.
myMap.options
.set("dblClickZoomCentering", true)
.set("dblClickFloatZoom", true);
// После каждого set будет генерироваться событие OptionManager.change.
3.
// Использование freeze для минимизации количества событий OptionManager.change.
myMap.options.freeze();
myMap.options.set({
dblClickZoomCentering: true,
dblClickFloatZoom: true
});
myMap.options.set('cursor', 'zoom');
myMap.unfreeze();
// Генерируется одно событие OptionManager.change.
unset
{option.Manager} unset(keys)
Стирает значения заданных опций в данном менеджере.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
keys * | — | Тип: String|String[] Имя опции или массив имен опций, значения которых должны быть аннулированы. |
* Обязательный параметр/опция.
Пример:
map.options.unset(['dblClickZoomCentering', 'dblClickFloatZoom']);
unsetAll
{option.Manager} unsetAll()
Стирает значения всех опции в данном менеджере.
Returns ссылку на себя.
Пример:
var geoObject = new ymaps.Placemark([37, 55], {}, {preset:'twirl#blueIcon'});
myMap.geoObjects.add(geoObject);
// Произвольным образом меняем стиль.
geoObject.options.set({
iconImageHref: 'http://mysite.ru/icon.png',
iconImageSize: [16, 16]
});
// Восстанавливаем первоначальный вид.
geoObject.options
// Во избежание двойной реакции геообъекта
// на изменение опций сначала вызываем freeze, а после задания
// всех значений вызываем unfreeze.
.freeze()
.unsetAll()
.set('preset','twirl#blueIcon')
.unfreeze();