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-routerですか? 1.0.0-rc.1? –