AngularJS应用报错Uncaught TypeError: angular.lowercase is not a function求助
解决AngularJS里
angular.lowercase is not a function的报错 问题复盘
你遇到的这个报错:
Uncaught TypeError: angular.lowercase is not a function
出现在textAngular-sanitize.js:413,直接导致应用挂掉,堆栈信息也指向textAngular的解析逻辑,这大概率是版本不兼容的锅。
为什么会报错?
AngularJS从1.6版本开始,就逐步废弃了angular.lowercase、angular.uppercase这类全局工具方法,官方推荐用原生JS的string.toLowerCase()和string.toUpperCase()代替。但你用的textAngular版本比较老,还在依赖这些已经被移除的AngularJS全局函数,所以一运行就炸了。
三种解决办法,按需选:
1. 升级textAngular到兼容版本
这是最稳妥的方案。找适配你当前AngularJS版本的textAngular最新稳定版,更新之后,库内部已经把angular.lowercase这类调用替换成了兼容写法,直接就能解决问题。
2. 手动修改textAngular的源码(临时救急)
如果暂时没法升级,直接改报错的文件就行:
- 打开
textAngular-sanitize.js,定位到第413行 - 把
angular.lowercase(tagName)改成tagName.toLowerCase() - 顺便搜一下整个文件里的
angular.lowercase和angular.uppercase,全换成原生的toLowerCase()/toUpperCase(),避免后续再出类似问题。
3. 回退AngularJS版本(不推荐)
要是不想动textAngular,可以把AngularJS退到1.5.x或者更早的版本——这些老版本还保留着angular.lowercase这些函数,能和旧textAngular兼容。但注意,老版本可能有安全漏洞和已知bug,除非万不得已,不建议这么干。
验证修复
改完之后重启应用,看看控制台还有没有这个报错,要是没了,就说明搞定了。
内容的提问来源于stack exchange,提问作者Sudarshan Kalebere
相关产品推荐
相关产品推荐

