gpt4 book ai didi

image - 使用 Angular http.get 调用异步加载图像

转载 作者:行者123 更新时间:2023-12-05 00:36:16 24 4
gpt4 key购买 nike

这可能有点新奇,但我真的不知道如何解决这个问题。

在被 Angular $http.get 调用调用后,谁能推荐我一种从 flask 后端传递和图像的方法?

我正在尝试做的事情的简短示例。

//javascript code
myApp.controller('MyCtrl', function($scope, $http){
$http.get('/get_image/').success(function(data){
$scope.image = data;
});
});

#flask back end
@app.route('/get_image/', methods= ['GET', 'POST'])
def serve_image():
image_binary = get_image_binary() #returns a .png in raw bytes
return image_binary

<!-- html -->
<html ng-app= "myApp">
<div ng-controller= "MyCtrl">
{{ image }}
</div>
</html>

如您所见,我正在尝试从 flask 后端向前端提供原始字节的 .png 图像。

我试过这样的东西
<html>
<img src= "/get_image/">
</html>

但问题是,“get_image_binary”需要一段时间才能运行,并且页面在图像准备好之前加载。我希望图像仅在准备好时才异步加载到页面。

再说一次,我确信有很多方法可以做到这一点,可能是 Angular 本身内置的东西,但很难将它用谷歌搜索来表达。

最佳答案

不能说 flask 的东西,但下面是一些 AngularJS 代码。

在 Angular 操作 DOM 并且浏览器呈现 ( AngularJS : $evalAsync vs $timeout ) 之前,该指令不会替换 source 属性。

HTML:

<div ng-controller="MyController">
<img lazy-load ll-src="http://i.imgur.com/WwPPm0p.jpg" />
</div>

JS:
angular.module('myApp', [])
.controller('MyController', function($scope) {})
.directive('lazyLoad', function($timeout) {
return {
restrict:'A',
scope: {},
link: function(scope, elem, attrs) {
$timeout(function(){ elem.attr('src', attrs.llSrc) });
},
}
});

工作中的相同代码 JSFiddle

关于image - 使用 Angular http.get 调用异步加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253050/

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