А вы хотите синхронные запросы к серверу? Нахрена? Надо так:
authService.checkApiRoles = function (authorizedRoles) {
var promise = $http({
url: "URL",
method: 'GET',
headers: {}
})
.then(function (response) {
var resultRole = response.data.result;
return resultRole;
});
return promise;
}
**********************************************
Пример использования resolve роутера
/**
* Роут "Личный кабинет""
*/
$stateProvider
.state({
name: 'user',
url: "/user",
templateUrl: "routes/user/user.html",
controller: 'userController as User',
resolve: {
authState: function (userFactory) {
return userFactory.ValidSession()
.then(function (result) {
return result;
});
}
}
})
// метод сервиса проверяющий валидность сессии на сервере
function ValidSession() {
var promise = $http({
url: API.makeUrl(API.URLS.user, "valid"),
method: 'GET',
params: {},
headers: {}
})
.then(function (response) {
$log.debug("ValidSession success: ", response.data);
var response_data = angular.fromJson(response.data);
return response_data.valid;
});
return promise;
}
// authState инжектится в контроллер
if (authState === true) {
$state.go('user.profile');
} else {
$state.go('login');
}