2016-07-11 10 views
2

Firebaseのstorage referenceからangularjsビューでイメージを表示するには? URLをコンソールに表示できますが、ビューにアクセスすることはできません。firebaseの記憶装置からanglejsのイメージをバインドする方法

サービスコード

function getImageUrl(image) { 
     var url; 
     var pathReference = firebaseDataService.images.child(image); 
     return pathReference.getDownloadURL().then(function(url) { 
      return url;     
     }).catch(function(error) { 
      // Handle any errors 
     });   
    } 

コントローラコード

$scope.getImageUrl = function(image) { 
var imageUrl; 
    var imageUrl = Service.getImageUrl(image).then(function(url) { 
      imageUrl = url; 
      console.log(url); 
      return imageUrl; 
    }); 
    return imageUrl; 
} 

ビューsrc属性で{{ハッシュ}}が正しく動作しないように角度のマークアップを使用して

<div ng-repeat="category in categories"> 
    <img src="{{getImageUrl(category.image)}}"> 
</div> 
+0

あなたはカテゴリを取得し、diferentのOBJに格納します。 '' – adolfosrs

+0

私は別のサービス方法でng-repeatよりもカテゴリを取得しています。イメージURLを取得するためにストレージサービスを呼び出しています。 –

+0

カテゴリを取得するメソッドを見てみましょう。 – adolfosrs

答えて

0

カテゴリを取得するまでに、カテゴリをループして各イメージを取得し、別のスコープオブジェクトに格納してビューで使用することができます。あなたのHTMLで

$scope.images = {}; 

categoriesSnapshot.forEach(function(category){ 
    Service.getImageUrl(category.val().image).then(function(url) { 
      $scope.images[category.key] = url; 
    }); 
}); 

:時刻で画像のURLを取得する必要があります

<div ng-repeat="(key, val) in categories"> 
    <img src="{{images[key]}}"> 
</div> 
+0

あなたのソリューションをありがとう、私は画像が見えないことがわかった。それはダイジェストサイクルによるもので$ scopeを使って解決した。 –

1

:ブラウザは文字列{{hash}}を持つURLから{{hash}}内の式をAngularが置き換えるまでフェッチします。 ngSrc指令はこの問題を解決します。

+0

まだ有効ではありませんが、私は確信していませんが、これは約束のためだと思っています –

関連する問題