如何从浏览器控制台访问和测试 AngularJS 过滤器?

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

给定一个测试过滤器,说这个 'capitalize' filter 将每个单词的第一个字母大写:

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

如何从浏览器的 JavaScript 控制台测试此过滤器?

过滤器可以在HTML模板绑定中调用{{myString | capitalize}},但要在浏览器中访问它,我们有一个很好的选择。考虑一下:

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

实现过滤器可以通过$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 文章和相关博客条目:access service from console