2017-10-28 37 views
0
<div ng-repeat="item in items"> 
    <div ng-if="need something here i.e. $index = ..."> 
    </div> 
    ..data.. 
</div> 

所以我有上面的模式。从服务器获取items列表。按下“加载更多”按钮时,第二页被拉出。一个页面默认包含8个项目。但是这可以由用户指定,因此可以将其设置为不同的值(例如9,10)。以默认值8,$指数值看起来像第1页以下:ng-repeat,重复块每隔n次显示项目

0 
1 
2 
3 
4 
5 
6 
7 

如果有更多的页面被拉到:

0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
... and so one 

我想要的东西应用ng-if使其显示块上的每4个项目。因此它遵循公式:3 + i*(total_items_per_page)。因此,对于一个列表时total_items_per_page = 8

0 
1 
2 
3 
    <--- here 
4 
5 
6 
7 
8 
9 
10 
11 
    <--- here 
12 
13 
14 
15 
16 
17 
18 
19 
    <--- here 
20 
21 
... and so one 

我试过$index == (page_number-1)*total_items_per_page + 3,这工作,但显然被压负载更多的时候删除当前页以上项目。寻求解决这个问题或寻求更好的解决方案。

编辑:我也试图避免预先定义的数组,使这个尽可能灵活可变total_items_per_page

+0

为什么不使用分页? –

+0

预期结果/目标不是很清楚....可能为什么你还没有答案 – charlietfl

回答

1

你可以利用这一点,这对所有的情况下,4,12,20,28正确... :

ng-if="($index+8) % 8 == 4"