【问题标题】:Ionic/Cordova - Get Image path to use on <img src="">Ionic/Cordova - 获取要在 <img src=""> 上使用的图像路径
【发布时间】:2016-11-02 21:29:36
【问题描述】:

我有一个 Ionic 应用程序,我将在其中截取应用程序的屏幕截图。

我的问题是我需要获取要在图像标签 src 中使用的图像路径。 但我不知道为什么没有发生。

这是我的代码:

$scope.image = {
    src: ''
};

$scope.takeScreenshot = function() {

    var screenshotLink,
        screenshot = new Image(),
        filename = '';

    navigator.screenshot.save(function(error,res) {
        if(error){
            //console.error(error);
        } else {  
            screenshotLink = res.filePath;
        }
    },'jpg',100,filename);
           
    $scope.image.src = screenshotLink;

};//end_takeScreenshot


<img ng-src="{{ image.src }}" alt="foobar"/>

你们能帮我解决这个问题吗?

【问题讨论】:

    标签: javascript android cordova ionic-framework


    【解决方案1】:

    您需要将$scope.image.src = screenshotLink 移动到navigator.screenshot.save 的回调函数中。像这样:

    navigator.screenshot.save(function(error,res) {
        if(error){
            //console.error(error);
        } else {  
            screenshotLink = res.filePath;
            $scope.$apply( function() {
                $scope.image.src = screenshotLink;
            });
        }
    },'jpg',100,filename);
    

    【讨论】:

    • 这行得通,但我必须截取 2 张屏幕截图才能显示图像……这是为什么呢?
    • 更新模型时视图不得更新。我今天实际上遇到了类似的问题,奇怪的是,将 ng-src 更改为 src 解决了我的问题。
    • 本文描述了您在视图未更新时看到的问题:jimhoskins.com/2012/12/17/angularjs-and-apply.html 基本上由于 navigator 回调函数发生在 Angular 上下文之外,您的视图在 $scope.image.src 之前已经消化已更新。我已经更新了我的答案。
    猜你喜欢
    • 2018-03-31
    • 2011-07-04
    • 2018-07-13
    • 2011-03-26
    • 2020-04-14
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2014-06-23
    相关资源
    最近更新 更多