1

我编写了一个从 $http 获取二进制数据的 api 服务。问题是我不知道如何使用该数据来显示图像。PS:二进制数据实际上是一个图像。

这是我的服务 API

getAvatar: function() {
    return $http({
      method  : 'GET',
      url     : 'domain.com',
      headers : {'Content-Type' : 'application/json'}
    });
  }

我的控制器

//get avatar
$scope.userAvatar = function() {
    Api.getAvatar()
    .then(function(result) {
        //success
        console.log(result.data); //this is the binary data
        $scope.avatarImage = result.data;
        }

    }, function(result) {
        //errors
    });

};

起初我认为 api 会给我的结果是一个 url,但结果是一个二进制文件。我必须先转换它吗?

4

3 回答 3

4

我假设您的服务可能会返回任何图像的base64 编码数据字符串,avatarImage然后您将其绑定到控制器中。

然后简单地写在html中:

<img ng-src="{{avatarImage}}"/>

于 2013-08-27T08:37:12.310 回答
2

you can do this by creating a new image element

$img=$("<img src='data:image/gif;base64,"+result.data+"'/>"); //Assuming that the image was encoded as base64. Try this

$elem.append($img) whereever you want to insert it

于 2013-08-27T08:39:11.193 回答
0

查看ngSrc

这是一个例子:

 <div ng-controller="Cont">
      <img ng-src="{{imageSource}}">
 </div>
于 2013-08-27T09:34:11.770 回答