Angular ng src在更改图像源时不更新范围

Angular ng-src when changing source of an image not updating scope

本文关键字:更新 范围 图像 ng src Angular      更新时间:2023-09-26

我的控制器中有下面的片段:

$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时,照片没有更新。可能是什么问题?

你的意思是src指向的内容发生了更改,但URL保持不变,你想强制它重读URL吗?如果是这样,那么您可以向URL添加一个时间戳,并更新时间戳以使其更改URL。

您还可以将src设置为带有图像的base64编码字符串,而不是URL。