具有此名称的控制器未在angularjs ngroute中注册

4 controller angularjs ngroute

我在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>
Run Code Online (Sandbox Code Playgroud)

这是我的欢迎页面:

<div ng-controller="welcome">

</div>
<script>
    angular.module('MyApp',[]) 
    .controller('welcome', function ($scope) { 

    });
</script>
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我收到以下错误

错误:$ controller:ctrlreg未注册具有此名称的控制器.

名称为"welcome"的控制器未注册.

当我将我的应用程序更改('MyApp',[])('MyApp'):

模块'MyApp'不可用!您要么错误拼写了模块名称,要么忘记加载它.如果注册模块,请确保将依赖项指定为第二个参数.

Kor*_*rte 5

angular.module可以创建新模块或检索现有模块.这取决于您使用的语法.

这也被引用官方的角度文档.

例如

angular.module('MyApp',[]) 创建一个新模块,因为它包含依赖注入数组(作为第二个参数).

angular.module('MyApp') 是现有模块的引用,因为它不包含依赖项注入数组.

在您的情况下,它会在第一个代码块上创建一个新模块.所以在第二个代码块中你需要检索它.

如果你改变,问题可能会解决

angular.module('MyApp',[])angular.module('MyApp')第二个代码块.