如何从浏览器控制台访问和测试 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。
给定一个测试过滤器,说这个 '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。