我有一个奇怪的问题 - 我在我的应用程序中使用Angular的ngRoute。我有不同的模板控制器,例如:
路线.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: '/' });
控制器包含在索引中.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>
我的控制器实际上是相同的 - 例如,向您展示索引和产品:
控制器索引.js:
angular.module('PokeApp')
.controller('IndexController', function($scope) {
// for testing purposes
console.log("hi");
..
});
控制器-产品.js:
angular.module('PokeApp')
.controller('ProductsController', function($scope) {
// again, for testing
console.log("hi");
..
});
但这是奇怪的部分 - 当我到达"/"页面时,我没有将控制器日志发送到控制台。 没有错别字,因为如果我将控制器的名称更改为错误的控制器名称,则会在控制台中收到错误。
但是当我转到/Products 时,我按预期得到了"嗨"。
我检查了我能想到的一切 - 错别字,错误的位置,堆栈溢出的线程。 我只是无法弄清楚为什么索引控制器拒绝工作,而其他(我还有一些)按预期工作。
谁能帮我弄清楚这一点?谢谢你的时间。
您能否尝试向路由提供程序添加其他情况:
otherwise({
redirectTo: '/'
});
像这样指定默认路由
$routeProvider
.when('/index', {
templateUrl: '../templates/template-index.html',
controller: 'IndexController',
})
.otherwise({ redirectTo: '/index' });
但我建议你从项目开始就使用 ui-router。它支持普通ngRoute可以做的所有事情以及许多额外的功能。