Я создал что-то вроде входа в систему и хочу, чтобы пользователь перешел на страницу панели управления после успешного входа в систему. На данный момент все работает, как ожидалось, за исключением того, что модель не обновляется, пока я не перезагружу страницу панели инструментов.
Я написал службу для обработки запросов $ http:
abcApp.service('Login', function($q, $http){
return({
login:login
})
var headers = { 'Content-Type': 'application/x-www-form-urlencoded' };
function login(login){
var formVals = {
username: login.username.$modelValue,
password: login.password.$modelValue,
remember: login.remember.$modelValue,
}
var request = $http.post('assets/php/do_login.php', formVals, null, headers);
return( request.then( handleSuccess, handleError ) );
}
function handleSuccess( response ) {
return( response.data );
}
function handleError( response ) {
if (
! angular.isObject( response.data ) ||
! response.data.message
) {
return( $q.reject( "An unknown error occurred." ) );
}
// Otherwise, use expected error message.
return( $q.reject( response.data.message ) );
}
});
Вот контроллер, который должен обрабатывать вход в систему:
$scope.doLogin = function (){
Login.login($scope.login_form)
.then(function(data){
if(data.status == 'success'){
$scope.currentUser = data.user;
$scope.msg = 'Welcome '+data.user.realname;
$scope.userId = data.user.id;
$scope.loggedIn = true;
}
}).then(function () {
return $timeout(function () {
$state.go(
'dashboard',
{},
{reload: true}
);
}, 250);
});
};
Изначально у меня все это было в контроллере, затем я разделил его на службу и контроллер. Я пробовал применить $ scope. $, Но получаю ошибку inprog. Как мне обновить модель без перезагрузки?