Spec-Zone.ru › Angular.js 1.2
Улучшить эту документацию

Фильтр форматирует значение выражения для отображения пользователю. Их можно использовать во шаблонах представлений, контроллерах или сервисах, и легко определить свой собственный фильтр.

Основной API — filterProvider.

Использование фильтров в шаблонах представлений

Фильтры могут применяться к выражениям в шаблонах представлений с использованием следующего синтаксиса:

{{ expression | filter }}

Например, разметка {{ 12 | currency }} форматирует число 12 как валюту с использованием фильтра currency. Результирующее значение — $12.00.

Фильтры можно применять к результату другого фильтра. Это называется «цеплением» и использует следующий синтаксис:

{{ expression | filter1 | filter2 | ... }}

Фильтры могут иметь аргументы. Синтаксис для этого:

{{ expression | filter:argument1:argument2:... }}

Например, разметка {{ 1234 | number:2 }} форматирует число 1234 с 2 десятичными знаками с помощью фильтра number. Результирующее значение — 1,234.00.

Использование фильтров в контроллерах, сервисах и директивах

Вы также можете использовать фильтры в контроллерах, сервисах и директивах. Для этого введите зависимость с именем <filterName>Filter в свой контроллер/сервис/директиву. Например, использование зависимости numberFilter внедрит фильтр чисел. Переданный аргумент — функция, которая принимает значение для форматирования в качестве первого аргумента и параметры фильтра, начиная со второго аргумента.

В приведенном ниже примере используется фильтр с именем filter. Этот фильтр сводит массивы к подмассивам на основе условий. Фильтр можно применить в шаблоне представления с разметкой {{ctrl.array | filter:'a'}}, что выполнит поиск по всему тексту для "a". Однако использование фильтра в шаблоне представления переоценит фильтр на каждом цикле обработки, что может быть дорогостоящим, если массив большой.

Поэтому в приведенном ниже примере вызов фильтра происходит непосредственно в контроллере. Это позволяет контроллеру вызывать фильтр только при необходимости (например, когда данные загружаются из бэкэнда или меняется выражение фильтра).

Создание пользовательских фильтров

Написание собственного фильтра очень просто: просто зарегистрируйте новую функцию фабрики фильтра в своем модуле. Внутренне это использует filterProvider. Эта функция фабрики должна возвращать новую функцию фильтра, которая принимает входное значение в качестве первого аргумента. Любые аргументы фильтра передаются в качестве дополнительных аргументов функции фильтра.

Следующий пример фильтра переворачивает строку текста. Кроме того, он условно делает текст заглавными.

Тестирование пользовательских фильтров

См. учебник по phonecat для примера.

© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.2.32/docs/guide/filter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API