避免 - ng-repeat每次在循环中下载文件

时间:2015-02-19 05:48:42

标签: angularjs ng-repeat angularjs-ng-click

我试图找到这个问题的答案,但找不到任何答案。

我正在使用 bs-popover ,我在 ng-repeat 中使用popover代码,

<div ng-repeat="i in [1,2,3,4.....100]">
    <a data-title="test popover" data-template="/test/test.html" bs-popover trigger="click" placement="left">Click Me for Test </a>
</div>

问题是因为popover代码是ng-repeat,所以文件被下载了100次(循环执行n次),如浏览器的网络选项卡所示

有什么办法可以避免这个问题吗?是否可以仅在点击时加载文件?

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

2 个答案:

答案 0 :(得分:0)

也许不是传入标记中的文件,而是通过JavaScript来实现。如下所示:

<div ng-repeat="i in [1,2,3,4.....100]">
    <a data-title="test popover" bs-popover ng-click="popover($event)">Click Me for Test </a>
</div>

然后从控制器

$scope.popover = function($event){
    angular.element($event.target).popover({
        template: '/test/test.html',
        placement: 'left'
    });
}

答案 1 :(得分:0)

你应该强制你的html进入缓存,第一次通过$ hhtp获取它,然后将它放在$ cacheFactory.cache的实例中,以便从那里提供对该URL的下一个$ http调用,

https://docs.angularjs.org/api/ng/type/ $ cacheFactory.Cache