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>'
);

Методы

Имя

Возвращает

Описание

add(key, object)

util.Storage

Добавляет объект в хранилище.

get(key)

Object

Возвращает объект, хранящийся под указанным ключом, или исходный key, в случае, если это не строка.

remove(key)

util.Storage

Удаляет пару "ключ: значение" из хранилища.

Предыдущая
Следующая