IE11中AngularJS控制器无法加载,报$controller:ctrlreg错误怎么办?
AngularJS控制器在IE11无法加载,但Chrome/Firefox正常的解决方案
我之前也踩过一模一样的坑!你的AngularJS控制器在Chrome和Firefox里能正常加载运行,到了IE11就直接罢工,问题根源其实很清晰:IE11完全不支持ES6的箭头函数表达式()=>{}。
当你用箭头函数编写控制器代码,或者控制器依赖的模块里用到了箭头函数时,IE11会把这种语法判定为错误,直接中断代码执行,导致控制器根本加载不起来。
解决方法
只需要把代码中所有的箭头函数() => {}替换成传统的function() {}写法就行:
举个例子,原来的箭头函数写法:
app.controller('UserController', ($scope, UserService) => { $scope.users = UserService.getUsers(); });
替换成传统函数写法:
app.controller('UserController', function($scope, UserService) { $scope.users = UserService.getUsers(); });
替换完成后再在IE11中测试,控制器应该就能正常加载运行了。
内容的提问来源于stack exchange,提问作者louis-nardozi
相关产品推荐
相关产品推荐

