У меня есть этот метод в моей службе, чтобы получить пользователь
getUser : function() {
console.log("get user");
token = authService.getToken();
userID = jwtHelper.decodeToken(token);
console.log(token);
console.log(userID);
return $http.get(httpHost + '/users/' + userID).success(function (data) {
user = data;
console.log(user);
return data;
});
},
Я запустил эту услугу в .run углового Тогда в моем контроллере Я получаю данные, чтобы представить имя пользователя на мой взгляд
$scope.userName = userService.getFirstName() + " " + userService.getLastName();
.
Он будет работать большую часть времени, но есть моменты, когда есть задержка в получении пользователя, контроллер будет выполнен, прежде чем оставить $ scope.username с неопределенными значениями.
Как я могу заставить свою программу ждать, пока getUser() вернет данные пользователя перед запуском контроллера?
Вы уверены, что хотите сделать это? Угловые работают асинхронно, и вы пытаетесь запустить синхронный процесс. Обычно при извлечении данных вы показываете некоторую предзагрузочную анимацию (например, пульсации). Затем, когда данные извлекаются, вы удаляете анимацию и заменяете ее фактическими данными. Это можно сделать в чистом CSS или с программным использованием чистого JS или настраиваемой угловой директивы. – eitanfar