Javascript Angularjs:如何将图像数据设置为IMG标记

Javascript Angularjs:如何将图像数据设置为IMG标记,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,请让我详细说明这个问题 我通过点击一个api获取用户配置文件pic,该api将图像作为数据返回,如屏幕截图中所示 我无法在IMG标记src中使用api url,因为我需要在get请求中传递标题中的访问令牌 以下是我正在执行的代码 vm.getDp = function () { if (vm.userDetails.hasDp) { userService.getProfilePic(vm.userDetails.id, vm.userDetails.profileI

请让我详细说明这个问题

我通过点击一个api获取用户配置文件pic,该api将图像作为数据返回,如屏幕截图中所示

我无法在IMG标记src中使用api url,因为我需要在get请求中传递
标题中的
访问令牌

以下是我正在执行的代码

vm.getDp = function () {
    if (vm.userDetails.hasDp) {
        userService.getProfilePic(vm.userDetails.id, vm.userDetails.profileImageUrl, accessToken)
            .then(function (data) {
                $("#theDp").attr('src', 'data:image/jpg;base64,' + data);
            }, function (error) {

            });
    }
}

既然您使用的是AngularJS,那么让我们停止使用jQuery来完成我们的工作。您可以使用该指令将范围变量绑定到图像的
src
属性

因此,通过使用指令准备HTML

<img ng-src="{{vm.img_data}}" alt="Description" />
为了防止显示损坏的图像,可以将
img
元素包装在指令中

示例
注意图中的红色小点

angular.module('app',[]);
有棱角的
.module('应用程序')
.控制器(“图像淋浴器”,图像淋浴器);
功能(范围){
var vm=这个;
vm.image_data=false;
vm.title='Image Shower';
激活();
函数激活(){
vm.image_data='数据:image/png;base64,ivborw0kggoaaansuheugaaaaaaaaabcayaaffcsjaaaaduleqvr42mp8z8dwhwafbqiax8jx0gaaabjru5erkjggg=';
}
}

你的购物车
{{vm.title}
{{vm.image_data}


既然您使用的是AngularJS,那么让我们停止使用jQuery来完成我们的工作。您可以使用该指令将范围变量绑定到图像的
src
属性

因此,通过使用指令准备HTML

<img ng-src="{{vm.img_data}}" alt="Description" />
为了防止显示损坏的图像,可以将
img
元素包装在指令中

示例
注意图中的红色小点

angular.module('app',[]);
有棱角的
.module('应用程序')
.控制器(“图像淋浴器”,图像淋浴器);
功能(范围){
var vm=这个;
vm.image_data=false;
vm.title='Image Shower';
激活();
函数激活(){
vm.image_data='数据:image/png;base64,ivborw0kggoaaansuheugaaaaaaaaabcayaaffcsjaaaaduleqvr42mp8z8dwhwafbqiax8jx0gaaabjru5erkjggg=';
}
}

你的购物车
{{vm.title}
{{vm.image_data}


问题是什么?@MaartenBicknese我无法将
图像数据设置为
img
标记。如何将我从API获取的图像数据设置为IMG标签?问题是什么?@MaartenBicknese我无法将
图像数据设置为
IMG
标签。如何将我从API获取的图像数据设置为IMG标记?这也不起作用。我在问题中添加了1个屏幕截图,请检查。正如您在新示例中所看到的,此方法有效。你能告诉我更多关于你的截图吗,问题似乎在别处。那个红点不是图片,而是别的东西。(一个截图按钮)请让我知道我能告诉你更多关于屏幕快照的信息吗?我不确定数据是base64还是仅仅是图像。从你的屏幕快照判断,你实际上得到的是图像的二进制版本。请参阅如何将其转换为不起作用的Base64。我在问题中添加了1个屏幕截图,请检查。正如您在新示例中所看到的,此方法有效。你能告诉我更多关于你的截图吗,问题似乎在别处。那个红点不是图片,而是别的东西。(一个截图按钮)请让我知道我能告诉你更多关于屏幕快照的信息吗?我不确定数据是base64还是仅仅是图像。从你的屏幕快照判断,你实际上得到的是图像的二进制版本。请参见如何将其转换为Base64