Rails将使用angular.js对gem进行拼写以进行分页

上下文:我有一个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 

在我的Angular代码中:

我有一个名为DinoApp的模块,我正在使用ngresource创建一个Entry资源

 app = angular.module("DinoApp", ["ngResource"]) app.factory "Entry", ["$resource", ($resource) -> $resource("/api/v1/dinosaurs/:id", {id: "@id"}, {update: {method: "PUT"}} ) ] 

我的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显示下一页按钮并将下一页追加到视图中?

我为此创建了一个指令,这可能会有所帮助:

https://github.com/heavysixer/angular-will-paginate

您可以使用计数器来计算每次调用控制器时增加的页数。

 var counter = 1; $scope.loadPage = function() { $scope.entries = Entry.query({page: counter}) counter += 1 ; } 

并有一个参考下一页的按钮。