template.filtersStorage
Статический объект.
Экземпляр класса util.Storage
Хранилище фильтров для шаблонов. Фильтры из хранилища можно использовать во всех макетах, созданных с помощью templateLayoutFactory. По умолчанию в хранилище объявлены следующие ключи для фильтров:
- default — позволяет устанавливать значения по умолчанию. Например, так: {{ properties.header|default:"Название" }}
Примеры:
1.
// Напишем простой фильтр, который будет преобразовывать
// дату в формате «dd.mm.yyyy» в формат «dd month yyyy».
// Для этого создадим функцию-фильтр, которая будет возвращать новое значение.
// При вызове фильтра в фильтр передаются следующие аргументы:
// менеджер данных шаблона данные.Менеджер, значение и значение, установленное для фильтра.
var dateFilter = function (data, dateString, filterValue) {
var months = [
'январь', 'февраль', 'март', 'апрель',
'мая', 'июнь', 'июль', 'август',
'сентябрь', 'октябрь', 'ноябрь', 'декабрь'
];
var date = dateString.split('.');
date[1] = months[parseInt(date[1], 10)];
return date.join(' ');
};
ymaps.template.filtersStorage.add('date', dateFilter);
// Тогда мы можем использовать его в таких конструкциях, как
// {{ "21.10.2014"|date }} и значение будет равно "21 октября 2014 года".
2.
// Напишем фильтр, который будет находить и заменять подстроки в тексте.
// Формат значений для замены в фильтре «subString_newSubString».
// При вызове фильтра в функцию будут переданы следующие аргументы:
// менеджер данных шаблона data.Manager, текст и значение, заданное фильтру.
var replaceFilter = function (data, text, replace) {
replace = replace.trim();
// Убираем кавычки.
replace = replace.slice(1, replace.length - 1);
// Будем находить в тексте часть, указанную до «_» и заменять её на то, что указано после.
var values = replace.split('_'),
from = new RegExp(values[0], 'g'),
to = values[1];
return text.replace(from, to);
};
// Теперь можно использовать в шаблонах конструкции вида
// {{ значение будет "text replaced test replace".
3.
// В данном примере в макет добавляются значение опции "colorClass" и значение свойства "header".
// Если для свойства "header "не задано значение, вставляется строка "Title".
var LayoutClass = ymaps.templateLayoutFactory.createClass(
'<h1 class="{{ options.colorClass }}">' +
'{{ properties.header|default:"Title" }}' +
'</h1>'
);
Методы
Имя |
Возвращает |
Описание |
Добавляет объект в хранилище. |
||
Object |
Возвращает объект, хранящийся под указанным ключом, или исходный key, в случае, если это не строка. |
|
Удаляет пару "ключ: значение" из хранилища. |