2 回答
TA贡献1876条经验 获得超6个赞
是否通过HTML连接了带有“ MyCtrl”的文件?(检查是否合并或丑化文件,请检查两次)
<script src='path/to/controllers.js'></script>
是否正确定义了“ MyCtrl”?
有几种模式:
app.controller('MyCtrl', ['$scope', function ($scope) {...}])
app.controller('MyCtrl', function ($scope) {...})
var MyCtrl = function ($scope) {...})
在正确的模块中定义了“ MyCtrl”吗?
是否将“ MyCtrl's”模块添加到应用程序依赖项中?
angular.module('app', ['app.sources']);
如果你定义模块多时间,您应该按以下顺序定义它:
首先定义应该像
angular.module('app.sources', []);
(带有[ ])
随后的定义应该像
angular.module('app.sources');
(无[ ])
重要提示:声明顺序很重要- [ ]首先应定义。
检查模块仅被定义一次。您可能忘记复制粘贴后重命名模块。检查src中的字符串,例如
angular.module('app.sources', []);
检查您的 'ng-app'。最好只使用其中一个名称,例如ng-app='app'(换句话说,不要定义多个未命名的ngApp指令)
您的AngularJS版本的控制器语法正确吗?
(Angular 1.0.x和1.2.x及更高版本中的定义有所不同。当Angular版本大于1.3.x时,您不能声明全局构造函数并与ng-controller一起使用)
TA贡献1817条经验 获得超6个赞
如果您使用ng-controllerwith和“ controller as”语法,请确保检查控制器的名称是否正确。
我的情况:
//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因为这就是我注册的方式。
因此,请检查您的控制器名称是否正确。
添加回答
举报