Collection
Расширяет ICollection, collection.Item.
Базовая реализация коллекции объектов на карте.
Конструктор | Поля | События | Методы
Конструктор
Collection([options])
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
options | — | Тип: Object Опции коллекции. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
options | — | Тип: Object Опции коллекции. |
Пример:
// Пример реализации собственного меню на основе наследования от Collection.
var bind = ymaps.util.bind,
map = new ymaps.Map(
'map', {
center: [55.819543, 37.611619],
zoom: 6
}
),
// Создаем собственный класс дочернего элемента меню.
MenuItem = function (data, options) {
MenuItem.superclass.constructor.call(this, options);
// Создаем менеджер данных.
// Если первым аргументом передали строчку, то обрачиваем её в хеш.
this._data = new ymaps.data.Manager((typeof data == 'string') ? { content: data } : data);
this._$content = null;
};
// Наследуем MenuItem от collection.Item.
ymaps.util.augment(MenuItem, ymaps.collection.Item, {
onAddToMap: function (map) {
MenuItem.superclass.onAddToMap.call(this, map);
var parentDomContainer = this.getParent().getChildElement(this);
this._$content = $('<div class="menuItem"></div>').appendTo(parentDomContainer);
// Создаем слушателя изменения поля 'content' в _data.
this._dataMonitor = new ymaps.Monitor(this._data);
this._dataMonitor.add('content', this._applyContent, this);
this._applyContent(this._data.get('content', ''));
// Пример использования менеджера событий domEvent.manager.
this._eventsGroup = ymaps.domEvent.manager.group(this._$content[0]);
this._eventsGroup.add('click', function () {
this.events.fire('click');
}, this);
},
onRemoveFromMap: function () {
this._$content.remove();
this._dataMonitor.removeAll();
this._eventsGroup.removeAll();
MenuItem.superclass.onRemoveFromMap.call(this);
},
getData: function () {
return this._data;
},
_applyContent: function (newValue) {
this._$content.text(newValue);
}
});
// Создаем собственный класс меню.
var Menu = function (options) {
Menu.superclass.constructor.call(this, options);
this._$content = null;
};
// Наследуем Menu от Collection.
ymaps.util.augment(Menu, ymaps.Collection, {
onAddToMap: function (map) {
Menu.superclass.onAddToMap.call(this, map);
var parentDomContainer = this.getParent().getChildElement(this);
this._$content = $('<div class="menu"></div>').appendTo(parentDomContainer);
},
onRemoveFromMap: function () {
this._$content.remove();
Menu.superclass.onRemoveFromMap.call(this);
},
getChildElement: function (chilElement) {
return this._$content;
}
});
// Пример использования пользовательского элемента управления "Меню".
var menu = new Menu(),
menuItem1 = new MenuItem('Пункт 1'),
menuItem2 = new MenuItem({content: 'Второй пункт'}),
menuItem3 = new MenuItem('Третий пункт');
menu.add(menuItem1);
menu.add(menuItem2);
menu.add(menuItem3);
map.controls.add(menu, {top: 5, left: 5});
// Изменяем данные в первом пункте меню.
menuItem1.getData().set('content', 'Первый пункт');
// Удаляем последний пункт из меню.
menu.remove(menuItem3);
// Можно прослушивать события не каждого отдельного элемента, а сразу всей коллекции.
menu.events.add('click', function (event) {
// Запрашиваем порядковый номер элемента, который проинициировал событие.
console.log('menu item #' + menu.indexOf(event.get('target')));
});
Поля
Имя | Тип | Описание |
---|---|---|
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
Имя | Тип | Описание |
---|---|---|
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
События
Имя | Описание |
---|---|
add | Произошло добавление дочернего объекта.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
mapchange | Сменилась карта.
Поля данных:
Унаследовано от IParentOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
remove | Произошло удаление дочернего объекта.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
Имя | Описание |
---|---|
add | Произошло добавление дочернего объекта.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
mapchange | Сменилась карта.
Поля данных:
Унаследовано от IParentOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
remove | Произошло удаление дочернего объекта.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
Методы
Имя | Возвращает | Описание |
---|---|---|
add(child) | Добавляет элемент в коллекцию. | |
each(callback, context) | Вызывает функцию-обработчик для всех элементов коллекции. | |
filter(filterFunction) | Object[] | Вызывает функцию-фильтр для всех элементов коллекции. При возвращении фильтром ненулевого значения элемент коллекции попадает в конечный массив. |
get(index) | Object | Returns элемент коллекции или null, если номер находится вне диапозона номеров коллекции. |
getAll() | Object[] | Returns массив со всеми элементами коллекции. |
getIterator() | Returns итератор для перебора элементов коллекции. | |
getLength() | Number | Returns количество элементов коллекции. |
getMap() | Returns карту, которой принадлежит элемент коллекции. Унаследован от collection.Item. | |
getParent() | Returns родительский объект. Унаследован от collection.Item. | |
indexOf(childToFind) | Number | Returns порядковый номер объекта в коллекции либо -1, если объект не найден. |
onAddToMap(map) | Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию. Унаследован от collection.Item. | |
onRemoveFromMap() | Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию. Унаследован от collection.Item. | |
remove(child) | Удаляет элемент из коллекции. | |
removeAll() | Удаляет все элементы из коллекции. | |
setParent(parent) | Устанавливает родителя для заданного элемента коллекции. Унаследован от collection.Item. |
Имя | Возвращает | Описание |
---|---|---|
add(child) | Добавляет элемент в коллекцию. | |
each(callback, context) | Вызывает функцию-обработчик для всех элементов коллекции. | |
filter(filterFunction) | Object[] | Вызывает функцию-фильтр для всех элементов коллекции. При возвращении фильтром ненулевого значения элемент коллекции попадает в конечный массив. |
get(index) | Object | Returns элемент коллекции или null, если номер находится вне диапозона номеров коллекции. |
getAll() | Object[] | Returns массив со всеми элементами коллекции. |
getIterator() | Returns итератор для перебора элементов коллекции. | |
getLength() | Number | Returns количество элементов коллекции. |
getMap() | Returns карту, которой принадлежит элемент коллекции. Унаследован от collection.Item. | |
getParent() | Returns родительский объект. Унаследован от collection.Item. | |
indexOf(childToFind) | Number | Returns порядковый номер объекта в коллекции либо -1, если объект не найден. |
onAddToMap(map) | Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию. Унаследован от collection.Item. | |
onRemoveFromMap() | Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию. Унаследован от collection.Item. | |
remove(child) | Удаляет элемент из коллекции. | |
removeAll() | Удаляет все элементы из коллекции. | |
setParent(parent) | Устанавливает родителя для заданного элемента коллекции. Унаследован от collection.Item. |
Описание событий
add
- child - добавленный дочерний элемент.
remove
- child - удаленный дочерний элемент.
Описание методов
add
{Collection} add(child)
Добавляет элемент в коллекцию.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
child * | — | Тип: collection.Item Элемент, который необходимо добавить. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
child * | — | Тип: collection.Item Элемент, который необходимо добавить. |
* Обязательный параметр/опция.
each
{Collection} each(callback, context)
Вызывает функцию-обработчик для всех элементов коллекции.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
callback * | — | Тип: Function Функция-обработчик. На вход получает элемент коллекции. При возвращении функцией значения false перебор останавливается. |
context * | — | Тип: Object Контекст вызываемой функции. |
* Обязательный параметр/опция.
filter
{Object[]} filter(filterFunction)
Вызывает функцию-фильтр для всех элементов коллекции. При возвращении фильтром ненулевого значения элемент коллекции попадает в конечный массив.
Returns массив из элементов, которые попали в выборку.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
filterFunction * | — | Тип: Function Функция, которая является фильтром для объектов коллекции. Первым параметром принимает элемент из коллекции. Должна возвращать булевое значение. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
filterFunction * | — | Тип: Function Функция, которая является фильтром для объектов коллекции. Первым параметром принимает элемент из коллекции. Должна возвращать булевое значение. |
* Обязательный параметр/опция.
get
{Object} get(index)
Returns элемент коллекции или null, если номер находится вне диапозона номеров коллекции.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
index * | — | Тип: Number Порядковый номер элемента в коллекции. |
* Обязательный параметр/опция.
getAll
{Object[]} getAll()
Returns массив со всеми элементами коллекции.
getIterator
{IIterator} getIterator()
Returns итератор для перебора элементов коллекции.
getLength
{Number} getLength()
Returns количество элементов коллекции.
indexOf
{Number} indexOf(childToFind)
Returns порядковый номер объекта в коллекции либо -1, если объект не найден.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
childToFind * | — | Тип: Object Искомый объект. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
childToFind * | — | Тип: Object Искомый объект. |
* Обязательный параметр/опция.
remove
{Collection} remove(child)
Удаляет элемент из коллекции.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
child * | — | Тип: collection.Item Элемент, который необходимо удалить. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
child * | — | Тип: collection.Item Элемент, который необходимо удалить. |
* Обязательный параметр/опция.
removeAll
{Collection} removeAll()
Удаляет все элементы из коллекции.
Returns ссылку на себя.