ngRoute没有重定向到任何东西

时间:2015-03-07 19:49:45

标签: angularjs ngroute

所以我试着学习如何使用Angulars路由,按照在线教程,我似乎无法弄清楚我哪里出错了。我有以下代码:

var app = angular.module('gamersplane', ['controllers', 'ngCookies', 'ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/pms/:box?', {
        controller: 'pmList'
    }).when('/pms', {
        controller: 'pmList'
    }).otherwise({
        controller: 'pmList'
    });
}])

var controllers = angular.module('controllers', []);
controllers.controller('pmList', function ($scope, $cookies, $http, $routeParams) {
    console.log($routeParams);
});

然而,无论我做什么,控制器都不会被击中。我在路由器中有otherwise,所以如果其他所有方法都失败了,它应该在哪里?

3 个答案:

答案 0 :(得分:0)

是的,它会以其他方式命中,但您只能定义重定向路径,并且该重定向路径将告诉url和控制器为$ route.current设置: -

redirectTo: '/pms'

Doc

答案 1 :(得分:0)

您需要为每条路线添加模板:

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/pms/:box?', {
        controller: 'pmList',
        template: 'test.html'
    }).when('/pms', {
        controller: 'pmList',
        template: 'test.html'
    }).otherwise({
        controller: 'pmList',
        template: 'test.html'
    });
}])

答案 2 :(得分:0)

squiroids关于其他方面的建议是正确的,但您不会看到您的测试应用程序发生变化。

路由用于在应用程序的区域之间导航。你可以有一个有两条路线的应用程序:pms显示PM列表和pms /:box zu查看特定的PM Box。 ngRoute的主要任务是使用给定模板替换应用程序中的占位符(ng-view)。如果不在各个路径上使用模板,则$ routeProvider将无法按预期方式导航。

鉴于您有两个区域视图(pmBox.html和pmList.html),您可以像这样配置$ routeProvider zu设置路由:https://gist.github.com/kpko/bd0231ccefbaf8c415c7