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

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

Susan Sarandon
发布: 2024-12-04 03:24:11
原创
556 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板