2013-08-27 3 views
1

Я написал службу api, которая извлекает двоичные данные из $ http. Проблема в том, что я не знаю, как использовать эти данные для отображения изображения. PS: двоичные данные на самом деле являются образом.как читать двоичные данные в angularjs

Это моя служба апи

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 
    }); 

}; 

Сначала я думал, что результат, что апи даст мне это URL, но оказывается, бинарный. Должен ли я сначала преобразовать его?

+0

Если ваш API построен для возврата двоичных данных, то, конечно, если это изображение и закодировано правильно, зачем использовать ajax? почему бы просто не установить это как src элемента IMG? – Richard

ответ

4

Я предполагаю, что ваше обслуживание может возвращать base64 encoded string of data для любого изображения, которое вы затем привязываете к avatarImage в вашем контроллере.

Тогда просто написать в HTML:

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

+0

получается довольно прямолинейно. Ха-ха. спасибо за всю помощь :) – user2720708

+1

Ничего себе ты сделал мой день! –

1

вы можете сделать это путем создания нового элемента изображения

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

$elem.append($img) везде, где вы хотите, чтобы вставить его

0

Chek из ngSrc

Ниже приведен пример:

<div ng-controller="Cont"> 
     <img ng-src="{{imageSource}}"> 
</div> 
Смежные вопросы