我有这个奇怪的问题 - 我在我的应用程序中使用Angular' ngRoute。 我有不同的模板控制器,例如:
routes.js:
angular.module('PokeApp', ['ngRoute'])
.config(function($routeProvider){
$routeProvider
.when('/', {
templateUrl: '../templates/template-index.html',
controller: 'IndexController'
})
.when('/products', {
templateUrl: '../templates/template-products.html',
controller: 'ProductsController'
})
.when('/events', {
templateUrl: '../templates/template-events.html',
controller: 'EventsController'
})
.otherwise({ redirectTo: '/' });
控制器包含在index.html中,如下所示:
<!-- Scripts -->
<script src="js/angular.min.js"></script>
<script src="js/angular-route.min.js"></script>
<script src="js/routes.js"></script>
<script src="js/controllers/controller-index.js"></script>
<script src="js/controllers/controller-products.js"></script>
<script src="js/controllers/controller-events.js"></script>
我的控制器实际上是相同的 - 例如,恶意显示索引和产品:
控制器index.js:
angular.module('PokeApp')
.controller('IndexController', function($scope) {
// for testing purposes
console.log("hi");
..
});
控制器products.js:
angular.module('PokeApp')
.controller('ProductsController', function($scope) {
// again, for testing
console.log("hi");
..
});
但这里有一个奇怪的部分 - 当我到达&#39; /&#39;页面,我没有让控制器登录到控制台。没有拼写错误,因为如果我更改错误的控制器名称,我会在控制台中收到错误。
但是当我去/产品时,我得到了&#39; hi&#39;如预期的那样。
我检查了我能想到的一切 - 错别字,错误的位置,stackoverflow的线程。我只是无法弄清楚为什么索引控制器拒绝工作,而其他人(我还有一些)按预期工作。
任何人都可以帮我解决这个问题吗?谢谢你的时间。
答案 0 :(得分:0)
您是否可以尝试向路由提供商添加其他情况:
otherwise({
redirectTo: '/'
});
答案 1 :(得分:0)
您可以像这样指定默认路线
$routeProvider
.when('/index', {
templateUrl: '../templates/template-index.html',
controller: 'IndexController',
})
.otherwise({ redirectTo: '/index' });
<小时/> 但我建议您从项目开始使用ui-router。 它支持正常ngRoute可以执行的所有操作以及许多额外功能。