首页  >  文章  >  web前端  >  迁移到 AngularJS v1.3 时如何修复“未捕获错误:[$injector:modulerr]”?

迁移到 AngularJS v1.3 时如何修复“未捕获错误:[$injector:modulerr]”?

Susan Sarandon
Susan Sarandon原创
2024-11-01 04:13:27698浏览

How to Fix

AngularJS:未捕获错误:[$injector:modulerr] 迁移到 V1.3 时

在 AngularJS 1.3 版本中,不再允许全局控制器函数声明。相反,开发人员必须创建一个 AngularJS 模块并向其附加组件。

要解决该错误,请按照以下步骤操作:

  • 使用 angular.module('app' 创建 AngularJS 模块, []).
  • 使用 .controller('Ctrl', ['$scope', Ctrl]) 将控制器附加到模块。

例如:

<code class="js">function Ctrl($scope) {
    $scope.age = 24;
}

angular.module('app', [])
    .controller('Ctrl', ['$scope', Ctrl]);</code>

注意: AngularJS 版本 1.3.14 此方法存在一些问题,因此请考虑降级到版本 1.3.13 或使用 AngularJS 1.6.X 以获得更稳定的体验。

Plunkr 示例(AngularJS 1.3.13):

https://plnkr.co/edit/Ei7P5xJ5NCKz9UEFyWij

替代解决方案:

如果您希望继续使用全局控制器声明,您可以在 angular.config 中允许它,尽管这不是推荐的方法:

<code class="js">angular.module('app', [])
    .config(['$controllerProvider',
        function ($controllerProvider) {
            $controllerProvider.allowGlobals();
        }
    ]);</code>

以上是迁移到 AngularJS v1.3 时如何修复“未捕获错误:[$injector:modulerr]”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn