【问题标题】:Argument 'MainCtrl' is not a function, got undefined?参数 'MainCtrl' 不是函数,未定义?
【发布时间】:2015-09-10 06:53:24
【问题描述】:

我收到此错误:

未捕获的 ReferenceError:未定义 MainCtrl, 参数 'MainCtrl' 不是函数,未定义

在 plnkr 中它可以正常工作,但在我的项目中却不行。

有什么想法吗? http://plnkr.co/edit/rPY6phUgtqavrEDUzhaH?p=preview

我在布局中有这个:

 <li ng-click="changeActiveMenu('Settings');"><a href="../Account/#/PersonalInfo">@Translate("MY_ACCOUNT")</a></li>

【问题讨论】:

  • 重新检查您在 ng-conroller 中编写的拼写
  • 我检查了几次一切正常
  • 请确保可能是很小的错误..请输入您的html和控制器代码,以便我们为您提供更好的解决方案
  • 他提供了他的小提琴。

标签: angularjs


【解决方案1】:

好像您没有像这样在index.html 文件中包含您的MainCtrl

<script src="scripts/controllers/main.js"></script>

【讨论】:

  • 好的,你有没有在你的角度模块中添加你的 MainCtrl ?
  • var app = angular.module('Online', []); app.controller('MainCtrl', ['$scope', 'ActivityService', function ($scope, activityService) {....}...是的,我是
  • 好的,在查看您的错误时,似乎找不到控制器,您应该添加更多错误跟踪以让我们了解您的问题
  • 我不知道还有什么要补充的?
【解决方案2】:

已经回答here。在 Angular 1.3.x 版本中,您需要使用 module.controller 语法注册控制器。喜欢

angular.module('plunker', []).controller('MainCtrl', ['$scope', 'ActivityService', function ($scope, activityService) { 

//Code

}])

可能还有其他原因。你的角度脚本没有加载到 dom 上。请使用

<script data-require="angular.js@1.3.x" src="//code.angularjs.org/1.3.16/angular.js" data-semver="1.3.16"></script> 

<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.16/angular.js"></script>

没有任何httphttps 协议。

【讨论】:

  • 这不是因为脚本,因为其他东西工作正常,只是当我像这样使用 var MainCtrl = function() .... 然后错误消失,但随后突出显示菜单不起作用
  • Uncaught ReferenceError: MainCtrl is not defined(anonymous function) @ Config.js:16 angular.js:11607 Error: [ng:areq] Argument 'MainCtrl' is not a function, got undefined that is我在控制台中得到了什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 2016-10-28
  • 2016-12-17
  • 2016-05-22
  • 2014-06-29
  • 1970-01-01
  • 2017-01-13
相关资源
最近更新 更多