如何在Firebase存储参考的angularjs视图中显示图像? 我可以在控制台中打印网址,但无法在视图中访问。
服务代码
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;
}
查看
<div ng-repeat="category in categories">
<img src="{{getImageUrl(category.image)}}">
</div>
答案 0 :(得分:1)
在src属性中使用{{hash}}之类的Angular标记并不能正常工作:浏览器将使用文字文本{{hash}}从URL中获取,直到Angular替换{{hash}中的表达式}。 ngSrc指令解决了这个问题。
<img ng-src="{{getImageUrl(category.image)}}">
答案 1 :(得分:0)
当您检索类别时,您可以遍历类别并检索每个图像,将其存储在不同的范围对象中并在视图中使用它。
$scope.images = {};
categoriesSnapshot.forEach(function(category){
Service.getImageUrl(category.val().image).then(function(url) {
$scope.images[category.key] = url;
});
});
在您的HTML中:
<div ng-repeat="(key, val) in categories">
<img src="{{images[key]}}">
</div>