Angularjs:迁移到版本 1.3 时未捕获错误:[$injector:modulerr]
AngularJS 1.3 版本引入了一项破坏兼容性的更改为以前版本编写的代码。在您的情况下,您遇到 [$injector:modulerr] 错误,因为您声明了一个全局控制器函数 (Ctrl),而不是使用 AngularJS 模块注册它。
定义 AngularJS 模块
在 AngularJS 1.3 及更高版本中,声明控制器的首选方法是通过 AngularJS 模块注册它。模块充当组织和配置 AngularJS 组件(如控制器、指令、服务和过滤器)的容器。
解决错误
要解决错误,您需要创建一个 AngularJS 模块并向其注册您的 Ctrl 控制器。这是代码的更新版本:
<code class="javascript">function Ctrl($scope) { $scope.age = 24; } var myApp = angular.module('app', []); myApp.controller('Ctrl', ['$scope', Ctrl]);</code>
升级到 AngularJS 1.6
AngularJS 1.3 现已弃用。建议升级到AngularJS 1.6版本,该版本具有更稳定的API和更高的性能。在 AngularJS 1.6 中,声明控制器的首选方法是通过类:
<code class="typescript">export class Ctrl { constructor(public $scope: ng.IScope) { this.$scope.age = 24; } }</code>
并将其注册到 AngularJS 模块:
<code class="javascript">myApp.controller('Ctrl', Ctrl);</code>
通过遵循这些准则,您可以成功将您的 AngularJS 应用程序迁移到版本 1.3 或升级到最新版本 1.6 并解决 [$injector:modulerr] 错误。
以上是为什么我在迁移到 AngularJS 版本 1.3 时收到'[$injector:modulerr]”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!