更改图像源而不更新范围时的Angular ng-src

时间:2014-10-23 22:07:33

标签: javascript angularjs

我的控制器内有以下片段:

$scope.onFileSelect = function($files) {
    for(var i = 0; i < $files.length; i++) {
        var file = $files[i];

        $scope.upload = $upload.upload({
            url: '/smart2/api/files/profile',
            file: file
        }).success(function(data) {
            $scope.photo = data;
        });
    }
}

当用户加载页面时,他们可以点击模式上传个人资料照片。在该模式中,它显示了当前的个人资料照片和上传输入。

我已将ng-src附加到图片标记上,这一切都正常。但是,当用户上传新的个人资料照片时,在上传通话的success功能中,我设置$scope.photo(在ng-src中引用)。

我知道我需要告知Angular它已经改变但不知道如何改变。来自HTTP调用的返回数据将始终与ng-src$scope.photo中已有的数据相同,但会更改。

个人资料照片的名称是用户的名称,因此即使他们上传新照片,文件名或来源仍保持不变,但实际文件不同。

问题是,当我在成功功能中设置$scope.photo时,照片没有更新。问题是什么?

1 个答案:

答案 0 :(得分:0)

您的意思是src指向的内容发生了变化,但网址是否保持不变并且您想强制重新读取该网址?如果是这样,那么您可以向URL添加tmestamp并更新时间戳以使其更改URL。

您还可以使用图片而不是网址将src设置为base64编码的字符串。