在`$ routeProvider`中重定向

时间:2015-09-30 12:35:18

标签: javascript angularjs routes

使用routeProvider$scope.$digest,我的$scope.$apply设置就是这样的:

$routeProvider.when('/events', {
    templateUrl: 'event-list/event-list.html',
    controller: 'eventListCtrl'
});
$routeProvider.when('/event/:eventCode', {
    templateUrl: 'event/event.html',
    controller: 'eventCtrl'
});
$routeProvider.when('/event/:eventCode/attendees', {
    templateUrl: 'event/attendees/attendees.html',
    controller: 'eventAttendeesCtrl'
});
$routeProvider.when('/', {
    templateUrl: ' ',
    controller: ['$scope','$location', function($scope,$location) {
        $location.path('events');
        $location.replace();
        $scope.$digest(); // important - digest the changes in rootScope
    }]
});
$routeProvider.otherwise({redirectTo: '/404'});

编辑我还有一个基数,<base href="/">,将在生产中更改为<base href="/dashboard/">

通过此代码,我的root / 会被重定向到 / events

我想将 / event /:eventCode 重定向到 / event /:eventCode / attendees ,但是如果我写的代码类似于我为root写的内容

当我点击 / event /:eventCode 时, $ digest已在进行中

1 个答案:

答案 0 :(得分:0)

发现有一个简单的redirectTo这样做(我也更改了网址格式,实际文件夹和链接之间没有混淆):

$routeProvider.when('/events', {
    templateUrl: 'event-list/event-list.html',
    controller: 'eventListCtrl'
});
$routeProvider.when('/e/:eventCode', {
    redirectTo: '/e/:eventCode/attendees'
});
$routeProvider.when('/e/:eventCode/attendees', {
    templateUrl: 'event/attendees/attendees.html',
    controller: 'eventAttendeesCtrl'
});
$routeProvider.when('/', {
    redirectTo: '/events'
});
$routeProvider.otherwise({redirectTo: '/events'});