0
我運行阻滯如下:「應用程序*」角UI路由器過渡HookMatchCriteria不工作
angular.module('app', [...]).run(['$transitions', '$state', 'EmployeeService', ($transitions, $state, EmployeeService) => {
$transitions.onBefore(
{ to: 'app.*' },
() => EmployeeService.checkAuth().then(() => {
console.log("run success");
},
() => {
console.log("run caught");
return $state.target('login');
}),
{priority: 10}
);
}])
,由於某種原因它執行的國家「應用」和「登錄」,雖然它們不匹配匹配標準,因此它在執行註銷時使我陷入無限循環。指定匹配條件的正確語法是什麼?我已經看了看這裏:
https://ui-router.github.io/ng1/docs/latest/interfaces/transition.hookmatchcriteria.html
編輯:發佈路由配置的要求 路線主模塊(包括未啓動時機的權威性檢查「應用程序」狀態):
export default mainPageRoutesConfig;
function mainPageRoutesConfig($stateProvider, $urlRouterProvider, $locationProvider) {
"ngInject";
$locationProvider.html5Mode(true).hashPrefix('!');
$urlRouterProvider.otherwise('/');
$stateProvider
.state('app', {
url: '/',
component: 'main'
})
.state('app.timesheet', {
url: 'timesheet',
component: 'timesheet'
})
.state('app.saveHours', {
url: 'saveTaskHours',
component: 'saveTaskHours',
params: {
timesheet:null
}
})
}
爲員工模塊路由(包括未啓動時機的權威性檢查以及「登錄」狀態):
export default employeesRoutesConfig;
function employeesRoutesConfig($stateProvider, $urlRouterProvider, $locationProvider) {
"ngInject";
$locationProvider.html5Mode(true).hashPrefix('!');
$urlRouterProvider.otherwise('/');
$stateProvider
.state('login', {
url: 'login',
component: 'login'
})
.state('app.employeesList', {
url: 'employees',
component: 'employeesList'
})
.state('app.saveEmployee', {
url: 'employee/?Id',
component: 'saveEmployee'
})
.state('app.deleteEmployee', {
url: 'employee/:Id',
component: 'deleteEmployee'
})
.state('app.employeePage', {
url: 'profile/:Id',
component: 'employeePage'
})
}
請發表您的路線以及。 – 31piy
>什麼是正確的語法來指定匹配標準? --- 您的語法看起來正確。我不知道這是否是一個錯誤。什麼版本的ui路由器? 1.0.0-RC.1? –