Улучшить эту документацию Просмотреть исходный код $filterProvider
Фильтры — это просто функции, которые преобразуют входные данные в выходные. Однако фильтры должны быть введены как зависимости. Для этого определение фильтра состоит из фабричной функции, которая аннотирована зависимостями и отвечает за создание функции фильтра.
uppercase или orderBy. Имена со специальными символами, такими как тире и точки, запрещены. Если вы хотите добавить имена пространств имён для своих фильтров, используйте прописные буквы (myappSubsectionFilterx) или символы подчёркивания (myapp_subsection_filterx). // Filter registration
function MyModule($provide, $filterProvider) {
// create a service to demonstrate injection (not always needed)
$provide.value('greet', function(name){
return 'Hello ' + name + '!';
});
// register a filter factory which uses the
// greet service to demonstrate DI.
$filterProvider.register('greet', function(greet){
// return the filter function which uses the greet service
// to generate salutation
return function(text) {
// filters need to be forgiving so check input validity
return text && greet(text) || text;
};
});
}
Функция фильтра регистрируется в $injector под именем фильтра, префикс которого — Filter.
it('should be the same instance', inject(
function($filterProvider) {
$filterProvider.register('reverse', function(){
return ...;
});
},
function($filter, reverseFilter) {
expect($filter('reverse')).toBe(reverseFilter);
});
Дополнительную информацию о работе фильтров Angular и о создании собственных фильтров см. в разделе «Фильтры» Руководства разработчика Angular.
Методы
-
register(name, factory);
Параметры
Параметр Тип Описание name stringObjectИмя функции фильтра или объект-карта фильтров, где ключи — имена фильтров, а значения — фабричные функции фильтров.
Примечание: Имена фильтров должны быть допустимыми идентификаторами выражений Angular, такими какuppercaseилиorderBy. Имена со специальными символами, такими как тире и точки, запрещены. Если вы хотите добавить имена пространств имён для своих фильтров, используйте прописные буквы (myappSubsectionFilterx) или символы подчёркивания (myapp_subsection_filterx).factory FunctionЕсли первым аргументом была строка, фабричная функция для регистрируемого фильтра.
Возвращаемое значение
ObjectЗарегистрированный экземпляр фильтра или, если была предоставлена карта фильтров, карта зарегистрированных экземпляров фильтров.
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ng/provider/$filterProvider