我是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}}未显示...
有人能告诉我我做错了什么吗? 谢谢
答案 0 :(得分:1)
Angular的$ injector无法消除使用相同名称的控制器之间的歧义。一种解决方法是手动命名它们:
angular.module('module1').controller('mod1.Controller1',
...
angular.module('module2').controller('mod2.Controller1',
另见https://groups.google.com/d/topic/angular/SZMFAKfx1Q8/discussion