Контекст: у меня есть серверная часть Rails, служащая API для внешнего приложения Angular.JS.
Задача: Я хочу получить все записи о различных видах «динозавров» из бэкэнда Rails. Поскольку записей более 500, я хочу получить только 30 видов за раз.
Мой текущий подход: я использую гем will_paginate в своем действии контроллера индекса Rails для динозавров_контроллера. У меня так работает.
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"}} )
]
Мой контроллер Angular выглядит так:
@MainController = ["$scope", "Entry", ($scope, Entry) ->
$scope.entries = Entry.query({page: 1})
$scope.viewPost = (dinosaurId) ->
]
Эта строка кода попадет в API в действии indexs_controller для index и будет возвращать только 30 видов «динозавров» за раз:
$scope.entries = Entry.query({page: 1})
Теперь - как мне заставить angular.js показывать кнопку следующей страницы и добавлять следующую страницу в представление?