我已将dir paginate包含在我的angularjs项目中以轻松处理分页,它可以很好地工作直到我想要过滤所有页面结果。
包含数据和过滤器的控制器如下所示:
<div dir-paginate="data in posts | itemsPerPage:5 | orderBy:sortKey:reverse" class="col-xs-12 post">
<div id="title" class="col-xs-3"></div>
<div id="title" class="col-xs-9"></div>
<div id="poster" class="col-xs-3">
<img src="pics/house.jpg" id="avatar">
<a ng-if="data.user_name == '<?php echo $currentUser?>'" href="edit-post/{{data.post_id}}"> Edit </a>
</div>
<div class="col-xs-9">
<div class="col-xs-12">
<p class="timestamp">{{ data.post_datetime }}</p>
</div>
<div id="rant">
<span style="word-wrap: break-word;">{{ data.post_content }}</span>
</div>
<div id="stats" class="col-xs-12"> <a href="#"><img src="pics/comment.png"></a><span>3</span>
</div>
</div>
</div>
<dir-pagination-controls
max-size="5"
direction-links="true"
boundary-links="true" >
</dir-pagination-controls>
dir-paginate看起来像这样
<button id="changeLikes" ng-click="sort('post_id')">ID</button>
我像这样调用sort函数:
+
它只对数据的当前页面进行排序,如果我使用分页并单击第2页它将只过滤第2页等等,这里的任何想法都会有很大帮助getPosts()通过php返回发布数据在sql中按子句划分或排序会影响角度。
答案 0 :(得分:1)
您是否尝试过翻过滤器的顺序,即
<div dir-paginate="data in posts | orderBy:sortKey:reverse | itemsPerPage:5" class="col-xs-12 post">
itemsPerPage
:expression
必须包含此过滤条件。这是必需的 通过分页逻辑。语法与任何过滤器相同:itemsPerPage: 10
,或者您也可以将其绑定到$ scope的属性:itemsPerPage: pageSize
。 注意:此过滤器应该在任何其他过滤器之后 过滤器以便按预期工作。一个安全的规则是始终把它 在表达结束时。