我有一个使用ng-repeat动态填充的列表。该列表由缩略图和标题组成。
过滤器工作正常,但是,一旦使用过滤器并重置缩略图。原因是当我加载我的缩略图时,我从需要特定散列URL的CDN加载,我可以将其设置为活动X秒。在我的情况下,我保持链接活着10秒。有足够的时间加载一个小缩略图。
重置过滤器时,过滤器似乎正在重新加载图像(使用散列URL)。问题是此时,URL不再有效。有没有办法更改filter
以将列表项的可见性设置为无,而不是完全删除它并重新加载对象?
我的代码在
下面<ul id="list" class="unstyled">
<li ng-repeat="slide in data | filter:searchQuery">
<span class="thumbnail glow" style="background: url({{currentThumb}})" index="{{$index}}" sprite-thumb></span>
<span class="listItemText">
<b>{{slide.slideIndex + 1}}. </b>{{slide.title}}
</span>
</li>
</ul>
答案 0 :(得分:1)
我的问题是我的sprite-thumb
指令。在指令中,我有$observe
观看style
attr,当列表过滤$observe
函数时,会再次被触发。
我决定放弃指令,而不是style="background: url({{currentThumb}})"
我明确地使用ng-style
这样:
ng-style="{'background-image' : 'url(' + currentThumb + ')', 'background-position' : getSpriteStyle(slide.slideIndex)}"
getSpriteStyle()
是:
$scope.getSpriteStyle = function(id)
{
return '0 ' + -(id * 80) + 'px';
}
该函数在background-position
background-image
属性