2016-10-03 72 views
0

使用ng-image-cache指令将图像保存在缓存中。Ng图像缓存不起作用

在我们的场景中,资产包含需要预加载的url列表,以便即使没有Internet连接也可以看到图像。

HTML如下:

<div ng-repeat="asset in assets"> 
     <ui-image data-src={{asset}} data-title="{{asset}}"></ui-image> 
</div> 

text包含HTML,我更换图像的情况下是这样的:

var imageUrl = text.substring(decypheredText.indexOf("\"") + 1, text.lastIndexOf("\"")); 
text.replace('img src', 'ui-image data-src') 
.replace('>', ' data-title = "' + imageUrl + '"></ui-image>'); 

任何帮助,将不胜感激。提前致谢。

回答

0

首先,ngImageCache不提供页面的离线可用性。如果您关闭了互联网连接,则如果不通过AppCacheService Worker明确实施离线模式,浏览器将无法显示页面。通过JavaScript

ngImageCache负荷的形象和序列化DOMStorage Base64表示内容(sessionStorage的默认情况下)

您的问题可以来自CORS限制,如果从其他域帆布toDataURL方法加载图像无法序列图像。显示 以下消息在控制台

从原点“http://target-domain.com”图片已经从装载由跨来源资源共享策略阻止:否“访问控制允许来源”标题存在于所请求的资源。因此不允许访问原产地'https://origin-domain.com'。

要解决该问题,从外部域加载的图像必须返回以下HTTP标头“访问控制允许来源” CORS

+0

你的模块不保存图像为base64,对抗的值关键是图片网址。它应该是一个base64 URI。 – shrey

+0

当模块无法在base64中正确序列化图像时,它将存储图像url以正确工作 –

+0

您是什么意思?我在我的代码中启用了断点,但断点永远不会进入js中的base64转换代码。 – shrey