页面加载时不会在IE11上显示任何图像,但在我们间歇性地调整浏览器大小(1/3加载)时会相应地刷新它们。我们无法使用任何其他浏览器复制此内容。 srcset通过静态内容自行运行。
Here is a Plunker example 它无法在IE11中运行。
或者快捷方便,我们正在使用的实际img html:
<img data-ng-srcset="{{::image.url}}, {{::image.url2x}}" alt="{{::image.name}}"/>
图像或周围的div 不应用了任何过渡,阴影或不透明度。
html渲染得很好,角度传递并正确重写srcset属性。图像只是没有出现,只有alt标签。想知道这可能是由于它的间歇性而导致的调用堆栈问题,可能是在角度完成消息之前加载Picturefill的竞争条件。
提前干杯!
答案 0 :(得分:1)
如果你在循环和特定情况下(不是你应用程序的所有图像上)使用PictureFill,可以调用一个函数,在最后一个项目加载后直接从HTML启动PictureFill(这不是最好的做法,但修复IE11问题):
<picture><!-- Your image --></picture>
<span ng-if="$last">
{{ controllerAlias.launchPictureFill() }}
</span>
答案 1 :(得分:0)
作为解决方案遇到了这个问题:http://tech.endeepak.com/blog/2014/05/03/waiting-for-angularjs-digest-cycle/
var waitForRenderAndDoSomething = function() {
if($http.pendingRequests.length > 0) {
$timeout(waitForRenderAndDoSomething); // Wait for all templates to be loaded
} else {
$window.picturefill();
}
}
$timeout(waitForRenderAndDoSomething);
博客文章描述的唯一问题就在这里,所以如果有人有更好的事情请告诉我:
$ http.pendingRequests应该仅用于调试目的。如果angular团队决定删除它,您可以使用此链接中建议的http拦截器实现相同的操作。