上下文:我有一个Rails后端作为Angular.JS前端应用程序的API。
任务:我想从Rails后端检索不同种类的“恐龙”的所有记录。由于有超过500条记录,我希望一次只能获得30种。
我目前的做法:我在我的Rails索引控制器操作中使用了will_paginate gem来为dinosaurs_controller。我让它像这样运行。
def index
@dinosaurs = Dinosaur.paginate(:page => params[:page], :per_page => 30)
end
在我的角色代码中:
我有一个名为DinoApp的模块,我正在使用ngresource创建一个Entry资源
app = angular.module("DinoApp", ["ngResource"])
app.factory "Entry", ["$resource", ($resource) ->
$resource("/api/v1/dinosaurs/:id", {id: "@id"}, {update: {method: "PUT"}} )
]
My Angular控制器如下所示:
@MainController = ["$scope", "Entry", ($scope, Entry) ->
$scope.entries = Entry.query({page: 1})
$scope.viewPost = (dinosaurId) ->
]
这行代码会在dinosaurs_controller的索引操作中击中API,并且一次只会返回30种“恐龙”:
$scope.entries = Entry.query({page: 1})
现在 - 我如何让angular.js显示下一页按钮并将下一页追加到视图中?
答案 0 :(得分:4)
我为此创建了一个指令,这可能会有所帮助:
答案 1 :(得分:1)
您可以使用计数器来计算每次调用控制器时增加的页数。
var counter = 1;
$scope.loadPage = function() {
$scope.entries = Entry.query({page: counter})
counter += 1 ;
}
并有一个参考下一页的按钮。
<button ng-click="loadPage()">Next page</button>