使用角度动态ng-src时延迟加载图像

时间:2017-08-01 06:06:40

标签: javascript jquery html angularjs image

整个应用程序中有许多图像标记,ng-src在每个图像中都是动态的,如:

<div ng-controller="load_product">
<img ng-controller="image_controller" ng-src="{{product.image}}" />
</div>
<div ng-controller="load_brand">
<img ng-controller="image_controller" ng-src="{{brand.image}}" />
</div>

现在我想使用每个图像上使用的image_controller来实现延迟加载图像。为此,当图像加载或使用

加载图像时发生错误时,image_controller中有两个事件可用
 $($element).load(function () {......})
 $($element).error(function () {......}).

对于延迟加载,我的方法是将图像的src替换为虚拟1px图像(如果它不在视口中)并将原始src存储在另一个属性 lazysrc 中,并更改为原始src(如果图像在视口中,即如果视口中的图像,则将值从lazysrc复制到src。

但是对于这个我需要一个事件,当图像的ng-src被解析但是图像的请求不是由浏览器发送的。

注意:load_product和load_brand控制器在某些事件后加载数据。因此,我需要在加载数据时将src复制到lazysrc,解析ng-src但不发送图像请求。我希望在数据加载和ng-src解决后停止此请求。

我不想在任何情况下更改HTML,因为它是一千页应用程序。

0 个答案:

没有答案