javascript - 无法使用 angularjs ng-src 访问我的设备本地存储中的图像文件

标签 javascript angularjs image cordova visual-studio-2013

我正在使用 AngularJS 和 Cordova,并使用 Visual Studios 2013 来模拟 cordova 应用程序。

我在 ms-appdata:///local/ 目录中有一堆图像文件,我尝试使用 ng-src="{{ img}}" 其中 $scope.img = "ms-appdata:///local/image.jpg"

HTML

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

JavaScript

 $scope.img= "ms-appdata:///local/image.jpg";

当我运行这段代码时,我什至没有在顶部看到丢失的图像图标,几乎就像根本没有图像一样。

当我将 ng-src="{{img}}" 更改为 src="ms-appdata:///local/image.jpg" 时,图像显示没有问题。

我已经尝试过 $sce.trustAsResourceUrl("ms-appdata:///local/image.jpg").$$unwrapTrustedValue() 作为另一个 Stack Overflow 答案的建议。

最佳答案

$sce.trustAsResourceUrl 可以帮助直接在 src 属性上插入 url,但是当 ng-src 指令将插入值分配给 >src 属性,它已经是一个字符串,不是可信对象。如果此 URL 可信,则该信息会在 ng-src 中丢失。

$sce.trustAsResourceUrl("...").$$unwrapTrustedValue() 在此上下文中没有意义,因为它会给您相同的“...”不受信任的字符串在输出上。

我相信在这种情况下可以做的最好的事情就是向 the white list 添加一个新协议(protocol).

app.config(function ($compileProvider) {
  var whitelist = $compileProvider.imgSrcSanitizationWhitelist();
  whitelist = new RegExp(whitelist.source.replace(/(ftp)/, '$1|ms-appdata'));
  $compileProvider.imgSrcSanitizationWhitelist(whitelist);
});

关于javascript - 无法使用 angularjs ng-src 访问我的设备本地存储中的图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699900/

相关文章:

objective-c - 从 UI 中删除图像

html - HTML 图像和 'file://' 指定的 src 异常问题

image - 背景图片 - 我的代码有什么问题?

javascript - 你必须在 View 中使用 ng-Controller 还是可以在 $routeProvider 中声明它?

javascript - 如何在 Firefox 不添加 "unsafe"前缀的情况下链接到数据 URL

JavaScript/jQuery getSelection 高亮合并span html元素

javascript - 计算出的直方图看起来不符合预期

javascript - 在 html 中禁用拖放并启用选择

javascript - 隐藏/禁用 iPad 弹出式键盘

javascript - WebRTC:为什么 Offer 需要为 DataChannel 打开/启用音频或视频选项?