How can I access and test an AngularJS filter from the browser console?

后端 未结 1 663
别跟我提以往
别跟我提以往 2021-01-05 06:11

Given a test filter, say this \'capitalize\' filter that will capitalize the first letter of each word:

return function (input) {
  return (!!input) ? input.         


        
相关标签:
1条回答
  • 2021-01-05 06:40

    Filters can be called in HTML template binding {{myString | capitalize}}, but to gain access to it in the browser we have an excellent option. Consider this:

    $filter('filter')(array, expression, comparator) per Angular $filter documentation

    Realizing a filter can be called via the$filter service, you can thus access, call and test the capitalize filter this way:

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

    The result in the console? "Capitalization Test"

    What about a filter with more than one input? Just add the parameter, for instance if the capitalize filter had a second boolean parameter to restrict capitalization to the first word only:

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

    OR

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

    Kudos to this SO article and related blog entries for posting on accessing services from the console: access service from console.

    0 讨论(0)
提交回复
热议问题