Мой запустить блок выглядит следующим образом: '. Приложение *Угловая UI Router Transition 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
Edit: Ваши маршруты конфигурации, как запрашиваемых Маршруты для главного модуля (включает в себя состояние «приложения», которые не должны сгореть проверку аутентификации):
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-router? 1.0.0-RC.1? –