AngularJS dirPaginate仅过滤当前页面

时间:2015-10-26 06:29:02

标签: javascript angularjs pagination

我已将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中按子句划分或排序会影响角度。

1 个答案:

答案 0 :(得分:1)

您是否尝试过翻过滤器的顺序,即

<div dir-paginate="data in posts | orderBy:sortKey:reverse | itemsPerPage:5" class="col-xs-12 post">

dir-paginate docs州:

  

itemsPerPage expression必须包含此过滤条件。这是必需的   通过分页逻辑。语法与任何过滤器相同:   itemsPerPage: 10,或者您也可以将其绑定到$ scope的属性:   itemsPerPage: pageSize注意:此过滤器应该在任何其他过滤器之后   过滤器以便按预期工作。一个安全的规则是始终把它   在表达结束时。