我有一个应用需要读取我保存到设备的图像文件。
我有一切工作execpt一个小问题让文件返回到ng-src。我现在的问题是从嵌套函数返回值我不知道如何修复它。
HTML
<img ng-src="{{getImage(product.image_a_225_x_225)}}" width="120px" height="120px" />
getImage函数
$scope.getImage = function(image){
var img = "";
GapFile.readFile("255_images/"+image, false, function(evt){
img = evt;
//console.log(evt)
});
return img;
};
我知道这不起作用,因为img在GapFile.readFile完成之前返回。我已经测试过GapFile.readFile正在向控制台输出良好的base-64,如果硬编码,base-64会正确地返回ng-src。但是如何让嵌套的成功函数返回到ng-src
感谢您的帮助
答案 0 :(得分:1)
你可以做的一个hack就是$ scope。一旦图像加载就会申请$(虽然我会认真地推荐你看看你是怎么做的,而不是滥用$ scope。$ apply)。
var _allImages = {};
$scope.getImage = function(image){
if (_allImages[image]) {
return _allImages[image];
}
GapFile.readFile("255_images/"+image, false, function(evt){
_allImages[image] = evt;
$scope.$apply();
});
return __base64BlankImage__;
};