установка $ rootScope, но не отображается в ng-src

0

Я использую ионную структуру 1 в своем развитии. То, что я намереваюсь достичь, - это обновить образ профиля одного и того же вида после того, как пользователь успешно загрузит изображение. Мой код выглядит следующим образом:

<img ng-src="{{ $root.user.userImageUrl }}">

Это услуга:

fileTransfer.upload(image, url, function (res) {
    $cordovaDialogs.alert('Update image success', 'Success').then(function () {
        $rootScope.user.userImageUrl = res;
        console.log($rootScope.user.userImageUrl);
    })
});

Я уверен, что код, который я написал, верен, так как он отражает новый образ, загруженный пользователем, если $rootScope.user.userImageUrl не является действительной ссылкой изображения сначала. Однако, если $rootScope.user.imageUrl имеет действительную ссылку изображения для отображения сначала, изображение того же вида не будет обновлено (что означает, что старое изображение все еще сохраняется в представлении)

Я не уверен, в чем проблема, так как я делал макет в скрипке. Может быть, это связано с ионным взглядом? Я даже применяю $rootScope.$apply() но то, что я получил, - это дайджест, уже примененный.

Ссылка на пример

Теги:
ionic-framework

1 ответ

0

Макет, который вы приложил, работает как прелесть с незначительным редактированием. http://jsfiddle.net/Lvc0u55v/8446/

Все, о чем я могу думать, это попытаться обернуть его таймаутом:

fileTransfer.upload(image, url, function (res) {
    $cordovaDialogs.alert('Update image success', 'Success').then(function () {
     $timeout(function() {
        $rootScope.user.userImageUrl = res;
        console.log($rootScope.user.userImageUrl);
     });
    })
});
  • 0
    будет проверять это, но не могли бы вы объяснить, почему требуется тайм-аут? разве это не должно быть асинхронным после отложенного обратного вызова?
  • 0
    В моем обновленном макете это работает прямо из коробки без таймаута. Я просто подумал, что из-за использования ionic может потребоваться принудительная перерисовка, тайм-аут обернет назначение в блок $ apply и заставит наблюдателей сработать.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню