【问题标题】:Redirecting within `$routeProvider`在 `$routeProvider` 中重定向
【发布时间】:2015-09-30 12:35:17
【问题描述】:

这就是我的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 编写的代码类似的代码 p>

当我点击 /event/:eventCode 时,它显示 $digest already in progress

【问题讨论】:

  • 能否提供eventCtrl代码
  • @shushanthp 实际上我将删除 event/event.html 和相关的具有 eventCtrl 的 js,这只是一个占位符页面,直到我能够将其重定向到 /event/:eventCode /与会者

标签: javascript angularjs routes


【解决方案1】:

发现有一个简单的redirectTo 这样做(我还更改了 URL 模式,以免在实际文件夹和链接之间产生混淆):

$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'});

【讨论】:

    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 2013-10-19
    • 2014-09-24
    • 2018-02-16
    • 2016-11-25
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多