2015-01-16 71 views
4

我想在離子應用程序中簡單顯示base64圖像。Ionic/AngularJS base64圖像不會顯示

,如果我做的圖像將無法顯示此:

HTML:

<img ng-src="data:image/jpeg;base64,{{myImage}}"/> 

控制器:

$scope.myImage= "/9j/4AAQSkZJ ..."; 

但圖像顯示,如果我只是直接就把編碼字符串在這樣的圖像元素中:

<img ng-src="data:image/jpeg;base64,/9j/4AAQSkZJ ..."/> 

我已經檢查過每個不安全的安全設置,看過其他幾十個SO帖子等。如果我將這個小例子放在CodePen中,它可以同時工作。

可能會發生什麼$scope.myImage變量會阻止它綁定到圖像元素?它是離子的東西嗎?角度問題?

+0

下面是服務時HTML的外觀:'' – lilbiscuit

回答

7

使用data-ng-src指令,這樣<img data-ng-src="{{data.image_url}}">

在控制器設置的base64字符串作爲這樣的: $scope.data.image_url=<your base64 image source>

希望這有助於!

-2

有時候我也面臨這個問題,並且使用setTimeout$timeout

setTimeout(function(){ 
    $scope.myImage= "/9j/4AAQSkZJ ..."; 
}, 2000); 

在角的方式(在控制器添加$timeout DI) -

$timeout(function(){ 
    $scope.myImage= "/9j/4AAQSkZJ ..."; 
}, 2000); 
+0

有趣的想法,但計時器沒有效果。 – lilbiscuit

+0

@lilbiscuit你能否粘貼你的base64編碼數據? – swapnesh

+1

我確定在我的應用程序中存在衝突。如果我從一個空白的項目開始,我沒有這個問題。 – lilbiscuit

0

我有同樣的問題,通過白名單這樣配置在主角度模塊解決了這個問題:

angular.module('app').config(function ($compileProvider) { 
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https|ftp|mailto|file|tel|data)/);}) 
-2

只使用ng-if在DIV,然後img標籤被儘快數據呈現加載