gpt4 book ai didi

javascript - Angularjs:如何将图像数据设置为IMG标签

转载 作者:行者123 更新时间:2023-11-28 05:35:22 25 4
gpt4 key购买 nike

请让我详细说明这个问题。

我通过点击一个将图像作为数据返回的 api 来获取用户个人资料图片,如下面的屏幕截图所示

enter image description here enter image description here

我无法在 IMG 标签 src 中获取 api url,因为我需要通过 get 请求在 headers 中传递访问 token

这是我正在执行的代码

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) {

});
}
}

enter image description here enter image description here

最佳答案

既然您正在使用 AngularJS,那么我们就停止使用 jQuery 来完成我们的工作。您可以使用 ngSrc将范围变量绑定(bind)到图像的 src 属性的指令。

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

<img ng-src="{{vm.img_data}}" alt="Description" />

然后您可以通过设置检索到的数据来显示您的图像。

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

});
}
}

为了防止显示损坏的图像,您可以将 img 元素包装在 ngIf 中。指令。

示例
注意小红点,这是图片。

angular.module('app', []);

angular
.module('app')
.controller('ImageShower', ImageShower);

function ImageShower($scope) {
var vm = this;
vm.image_data = false;
vm.title = 'Image Shower';

activate();

function activate() {
vm.image_data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==';
}
}
<!doctype html>
<html ng-app="app">

<head>
<meta charset="utf-8">
<title>Your Shopping Cart</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>

<body ng-controller="ImageShower as vm">
<h1>{{vm.title}}</h1>
<img ng-src="{{vm.image_data}}" alt="Description" />
<p>{{vm.image_data}}</p>
</body>

</html>

关于javascript - Angularjs:如何将图像数据设置为IMG标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39410050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com