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

给定一个测试过滤器,比如说这个 ‘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 |大写}},但要在浏览器中访问它,我们有一个很好的选择.考虑一下:

$filter(‘filter’)(数组,表达式,比较器)每Angular $filter documentation

可以通过$filter服务调用实现过滤器,因此您可以通过以下方式访问,调用和测试大写过滤器:

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

控制台的结果? “资本化测试”

具有多个输入的过滤器怎么样?只需添加参数,例如,如果大写过滤器具有第二个布尔参数,则仅限大写到第一个单词:

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.

相关文章
相关标签/搜索