Angularjs ng-src和phonegap读取文件

时间:2014-06-04 17:25:58

标签: javascript angularjs cordova

我有一个应用需要读取我保存到设备的图像文件。

我有一切工作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

感谢您的帮助

1 个答案:

答案 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__;

};