AngularJS Controller $范围不显示变量

时间:2013-06-10 13:13:53

标签: angularjs angularjs-routing angularjs-controller

我是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 controller

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>

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

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

1 个答案:

答案 0 :(得分: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