使用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已在进行中。
答案 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'});