Как я могу получить доступ и проверить фильтр AngularJS с консоли браузера?

Учитывая тестовый фильтр, скажите 'capizeize, который будет использовать первую букву каждого слова:

return function (input) {
  return (!!input) ? input.replace(/([^\W_]+[^\s-]*) */g, function (txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  }) : '';
}

Как проверить этот фильтр с консоли браузера JavaScript?

Ответ 1

Фильтры можно вызывать в привязке HTML-шаблона {{myString | capizeize}}, но чтобы получить доступ к нему в браузере, у нас есть отличный вариант. Рассмотрим это:

$filter('filter')(array, expression, comparator) за Angular документация по фильтрам

Реализация фильтра может быть вызвана через службу $filter, таким образом, вы можете получить доступ, вызвать и протестировать фильтр capitalize следующим образом:

angular.element(document.body).injector().get('$filter')('capitalize')('capitalization test')

Результат в консоли? "Capitalization Test"

Как насчет фильтра с несколькими входами? Просто добавьте этот параметр, например, если фильтр capitalize имел второй логический параметр, чтобы ограничить капитализацию только первым словом:

angular.element(document.body).injector().get('$filter')('capitalize')('capitalization test', true)

ИЛИ

angular.element(document.body).injector().get('$filter')('capitalize').apply(null, ['capitalization test', true])

Престижность этой статьи SO и связанных записей блога для публикации при доступе к службам с консоли: доступ к сервису из консоли.