1

我是 AngularJs 的新手。

在 app.js 我有以下

angular.module('module1', ['module2'])
    .config(function($routeProvider) {
        $routeProvider
            .when('/',
                {
                    controller: 'Controller1',
                    templateUrl: '/app/module/module1/partials/module1.html'
                });
    });

我的 module1 控制器

angular.module('module1').controller('Controller1', function($scope) {
    $scope.module1Name = "Module1";
});

在 module2 文件夹中,我有 Index.js

angular.module('module2', []).config(function($routeProvider) {
    $routeProvider
        .when('/test',
            {
                controller: 'Controller1',
                templateUrl: '/app/module/module2/view/test.html'
            });
});;

Module2控制器

angular.module('module2').controller('Controller1', function ($scope) {
    $scope.module2Name = "Module2";
});

这是我的 index.html

<html data-ng-app="module1">
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Angular</title>
    <script src="~/Scripts/angular.min.js"></script>
    <script src="~/App/app.js"></script>
    <script src="~/App/module/module2/index.js"></script>
    <script src="~/App/module/module2/controller/Controller1.js"></script>
    <script src="~/App/module/module1/controller/Controller1.js"></script>

</head>
<body>
    <div data-ng-view=""></div>
</body>
</html>

和 module1.html

<div>
    f4b view {{module1Name}}
    <br/>
    <a data-ng-href="#/test">Test page</a>
</div>

和 test.html

<div>
    Test view {{module2Name}} <br/>
        <a data-ng-href="#/">f4b page</a>
</div>

当我启动应用程序时,会显示模块 1 的名称,但是当我单击链接时,我看到的只是没有模块 2 {{module2Name}} 的“测试视图”...

有人可以告诉我我做错了什么吗?谢谢

4

1 回答 1

1

Angular 的 $injector 不能在使用相同名称的控制器之间消除歧义。一种解决方法是手动命名它们:

angular.module('module1').controller('mod1.Controller1', 
...
angular.module('module2').controller('mod2.Controller1', 

jsfiddle

另请参阅https://groups.google.com/d/topic/angular/SZMFAKfx1Q8/discussion

于 2013-06-10T20:18:00.263 回答