首页 >web前端 >js教程 >为什么我在 AngularJS 中收到'控制器不是函数,未定义”?

为什么我在 AngularJS 中收到'控制器不是函数,未定义”?

Susan Sarandon
Susan Sarandon原创
2024-12-04 03:24:11574浏览

Why Am I Getting

不允许全局控制器声明

在现代版本的 AngularJS (1.3 ) 中,不再支持在全局范围内全局定义控制器。错误消息“控制器不是函数,未定义”表明了此问题。

要正确注册控制器,请使用首选 module.controller 语法。以下是示例:

angular.module('app', [])
    .controller('ContactController', ['$scope', function ContactController($scope) {
        // Controller logic
    }]);

或者,使用依赖项注入:

function ContactController($scope) {
    // Controller logic
}
ContactController.$inject = ['$scope'];
angular.module('app', []).controller('ContactController', ContactController);

允许全局控制器

作为一项重大更改,全局控制器声明已被禁用。但是,可以使用allowGlobals重新启用此功能。

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

其他注意事项

  • 确保正确的角度根元素包含ng-app指令.
  • 验证脚本文件是否正确
  • 避免多次定义同一模块,这可能会清除以前注册的实体。

以上是为什么我在 AngularJS 中收到'控制器不是函数,未定义”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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