Я создал SPA с угловой v1.5.6 и угловой-ui-router v1.0.0alpha0; Вот мой Working Plunker
. в этом SPA У меня есть 3 страницы: целевая страница i.e "/", / и /О нас. Главная страница необходима для входа в систему; после входа в систему мы сохраняем учетные данные в локальном хранилище, чтобы при обновлении страницы мы не теряли страницу. все работает нормально, но теперь у меня есть вопрос о /Главная страницаНе удается перезагрузить такое же состояние на странице обновления
когда я обновить/Home страницу , это дает ниже ошибки для свойства, которая определяется в данных атрибут .state и страница не нагружает
angular.min.js:117 TypeError: Cannot read property 'authorizedRoles' of undefined
маршрута определяется ниже способом (только соответствующий код показан ниже)
$stateProvider
.state("home", {
url: '/home',
templateUrl: './home/home.html',
controller: 'HomeController',
requiresAuth: true,
data : { pageTitle : 'Home', authorizedRoles: [USER_ROLES.admin, USER_ROLES.editor] }
})
и используя ниже код в *.config*
, которые являются причиной ошибки
$transitionsProvider.onBefore({to: function(state) { return state.requiresAuth; } },
function($transition$, $state, AuthService) {
console.log(arguments);
var from = $transition$.to().name;
console.log(from);
if(!AuthService.isAuthenticated()) {
return $state.go("login", {referral : from});
} else {
console.log('I m logged in');
var roles = $state.current.data.authorizedRoles;
if(AuthService.isAuthorized(roles)) {
console.log('Authorized');
}
}
});
Примечание: писать какие-либо полномочия в этой plunker при запросе авторизации.
после обновления страницы $ state.current пуст; как справиться с этими ситуациями?
Да. Я считаю, что это кажется правильным, но почему это происходит, когда мы обновляем одну и ту же домашнюю страницу –