首页 >web前端 >js教程 >为什么我的 AngularJS 控制器未定义,如何正确注册它?

为什么我的 AngularJS 控制器未定义,如何正确注册它?

DDD
DDD原创
2024-12-16 06:07:15738浏览

Why is my AngularJS Controller undefined, and how can I register it correctly?

AngularJS 中的错误:控制器注册

问题:

尝试全局定义控制器时在 AngularJS 应用程序中,错误“控制器不是函数,未定义”

答案:

从 AngularJS 1.3 开始,不再支持全局控制器声明。现在必须使用 module.controller 语法注册控制器。

注册方法:

  1. 使用 .controller()方法:
angular.module('app', []).controller('ContactController', ['$scope', function($scope) {
  // Controller logic
}]);
  1. 使用依赖注入:
function ContactController($scope) {
  // Controller logic
}
ContactController.$inject = ['$scope'];
angular.module('app', []).controller('ContactController', ContactController);

替代方案:允许全局变量

使用可以通过在 $controllerProvider 中设置 allowedGlobals 来重新启用全局控制器:

angular.module('app').config(['$controllerProvider', function($controllerProvider) {
  $controllerProvider.allowGlobals();
}]);

其他注意事项:

  • 确保包含 ng-app 指令在应用程序的根元素上。
  • 验证正确的文件包含在脚本。
  • 避免多次定义同一模块,因为这可能会覆盖以前注册的实体。

以上是为什么我的 AngularJS 控制器未定义,如何正确注册它?的详细内容。更多信息请关注PHP中文网其他相关文章!

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