我在mvc-angularjs中创建一个web应用程序,我正在使用ngroute。
我的布局中的Angularjs控制器使用html代码:
<div class="container body-content" ng-app="MyApp">
<br />
<br />
<br />
<div style="float:right;">
<a href="#" class="btn btn-danger">Sign Out</a>
</div>
@RenderBody()
<hr />
</div>
<script>
(function () {
var app = angular.module('MyApp', ['ngRoute', "ngStorage"]);
app.controller('myctrllayout', function ($scope) {
});
})();
</script>
这是我的欢迎页面:
<div ng-controller="welcome">
</div>
<script>
angular.module('MyApp',[])
.controller('welcome', function ($scope) {
});
</script>
当我运行代码时出现以下错误
错误:$ controller:ctrlreg具有此名称的控制器不是 注册
名称为“欢迎”的控制器&#39;没有注册。
当我将我的应用从('MyApp',[])
更改为('MyApp')
时:
模块&#39; MyApp&#39;不可用!您要么错误拼写了模块名称 或者忘了加载它。如果注册模块,请确保指定 依赖关系作为第二个参数。
答案 0 :(得分:5)
angular.module
可以创建新模块或检索现有模块。这取决于您使用的语法。
官方角度文档上也是referenced。
e.g。
angular.module('MyApp',[])
创建一个新模块,因为它包含依赖注入数组(作为第二个参数)。
angular.module('MyApp')
是现有模块的引用,因为它不包含依赖项注入数组。
在您的情况下,它会在第一个代码块上创建一个新模块。因此,在第二个代码块中,您需要检索它。
如果你改变
,可能会解决问题 第二个代码块中的 angular.module('MyApp',[])
到angular.module('MyApp')
。