Я создаю очень базовую систему входа с угловым JS. В принципе, после отправки формы входа учетные данные проверяются на базе базы данных с использованием PHP и Mysqli. Если все в порядке, оно возвращается успешно, и я устанавливаю переменную, как $rootScope.isLoggedIn = true
, и данные пользователя в других аналогичных переменных.Основная разрешающая способность для угловой маршрутизации
Теперь я пытаюсь работать, лучший способ использовать resolve
с моими маршрутами, так что только зарегистрированных пользователей или пользователей с необходимыми разрешениями могут получить доступ к странице (в том числе на перезагрузки страницы!)
Я просто не могу Я не понимаю, как работают эти решения. Моя маршрутизация выглядит (необходимо на странице панели пользователя нужно войти в систему), это до сих пор:
app.config(function($routeProvider) {
$routeProvider
//login
.when('/', {
templateUrl : 'framework/views/login.html',
controller : 'LoginCtrl',
title: 'Admin Login'
})
//dashboard
.when('/dashboard', {
templateUrl : 'framework/views/dashboard.html',
controller : 'DashboardCtrl',
title: 'Dashboard',
resolve: { ? }
})
//catch all redirect
.otherwise({ redirectTo: '/' });
});
Я вижу логику, но она не работает для меня. Когда я делаю 'console.log (toState.authenticate)' ничего не получаю, но если я изменю '$ stateChangeStart' на' $ routeChangeStart', я получаю правильное значение, но вещь все еще не работает ... – Coop
В Фактически, маршрут не останавливается от загрузки вообще, когда выполняется 'if statement'. Даже если я удалю 'if statement' и просто' event.preventDefault(); 'он не работает. – Coop
Я вижу. Мой пример для ui-router - он отлично работает там. Быстрый поиск в googling показывает, что не может быть предотвращен запуск $ routeChangeStart. – gorpacrate