当AngularJS崩溃并出现错误“参数'MyCtrl‘不是函数,未定义的函数”时,找出原因可能有点困难。
这里我想做一个“检查表”,当你遇到错误时,你应该检查什么?
发布于 2014-11-07 17:19:38
是否通过html连接带有'MyCtrl‘的
<script src='path/to/controllers.js'></script>有几种模式:
app.controller('MyCtrl', ['$scope', function ($scope) {...}])
app.controller('MyCtrl', function ($scope) {...})
var MyCtrl = function ($scope) {...})右module?
中
angular.module('app', ['app.sources']);- First define should be like
angular.module('app.sources', []);(使用[ ])
angular.module('app.sources');(没有[ ])
重要的:声明顺序很重要--应该先定义[ ]。
的字符串
angular.module('app.sources', []);'ng-app'。最好只使用其中一个名称,如ng-app='app' (换句话说,不要定义多个未命名的ngApp directives)(在Angular 1.0.x和1.2.x及更高版本中的定义存在差异。对于高于1.3.x的Angular版本,不能声明全局构造函数并将其与ng-一起使用。)
发布于 2015-08-20 17:24:03
如果您使用带有"controller as“语法的ng-controller,请确保检查控制器的名称是否正确。
我的案例:
//controller register
angular.module("myApp").controller("someController", SomeController)
//in my code
<div ng-controller="SomeController as vm"></div>注意,我使用的是ng-controller="SomeController as vm",其中SomeController有一个大写的S。它应该是一个小写的s,因为这是我注册它的方式。
因此,请检查您的控制器名称是否正确。
https://stackoverflow.com/questions/26797756
复制相似问题