Я пытаюсь загрузить изображение из URL-адреса в данные, возвращаемые MongoDB. На странице редактирования профиля моего пользователя они могут редактировать некоторые данные, такие как их адрес электронной почты, и изображение их профиля пользователя. Данные адреса электронной почты являются обязательными, однако ng-src для изображения профиля никогда не разрешается, поэтому он всегда пуст, даже если пользовательский объект содержит правильный URL-адрес, к которому он должен привязываться.AngularJS ng-src и ng-attr-src не работают в теге IMG
HTML в вопросе:
<div ng-controller="userCtrl">
<img ng-src="{{currentUser.profileImage}}" src="{{currentUser.profileImage}}" class="img-responsive" alt="Profile Image"/>
<input name="name" type="text" placeholder="Enter Name" class="form-control" ng-model="currentUser.name"/>
</div>
AngularJS называют инициализировать данные в моем контроллере:
function UserCtrl($scope, $routeParams, $timeout, userService) {
$scope.init = function() {
userService.getCurrentUser().then(function(dataResponse) {
if (dataResponse.data) {
dataResponse.data.profileImage = "images/" + dataResponse.data.profileImage;
userService.setCurrentUser(dataResponse.data);
$scope.currentUser = dataResponse.data;
}
});
}
$timeout($scope.init());
}
Я попытался все перестановки скобок, вызовов функций, и замедленный метод загрузки, что я мог бы найдите ссылку (следовательно, время ожидания там). Я в тупике о том, почему currentUser.name будет работать нормально, но currentUser.profileImage этого не делает. Я понятия не имею, что мне не хватает, чтобы сделать эту работу такой, какой она должна. Любая помощь была бы очень признательна!
Привет, Лонг. Спасибо за быстрый ответ! Я реализовал это, как вы описали, и имеет смысл, что это может быть проблемой, однако мне нужно, чтобы это разрешалось для каждой страницы на всех моих маршрутах (имя пользователя находится на каждой странице, если пользователь входит в систему). Есть ли простой способ сделать это без дублирования блоков кода и решения в каждом routeProvider.when назначение? Большое вам спасибо! – Tyler
Я считаю, что нашел решение здесь: http://stackoverflow.com/questions/19937751/angular-how-use-one-resolve-for-all-the-routes-of-my-application ... Я буду ответьте, если он решает мою проблему, потому что мне нужно будет реализовать это исправление, прежде чем я смогу проверить тот, который вы опубликовали. – Tyler
Переменная currentUser, передаваемая в UserCtrl, является «неопределенной». Кое-что о блоке кода разрешения не возвращается правильно, потому что я могу видеть, что правильные пользовательские данные выходят из системы, если я отбрасываю console.log в getCurrentUser(). Then (... block. – Tyler