设置$ rootScope但不反映在ng-src中

时间:2016-08-18 10:56:10

标签: angularjs ionic-framework

我在开发中使用离子框架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(),但我得到的是已经应用的摘要。

Link to mock example

1 个答案:

答案 0 :(得分: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);
     });
    })
});