What I'd do/did is use angular's $cacheFactory and have one entry for each API endpoint. So if your current URL is /api/v1/users?per_page=20&page=1
the cache's key would be /api/v1/users
without any pagination parameters. Then once the response is returned do the following in the function which handles the data:
// add customer insert method somewhere
Array.prototype.insert = function (index, item) {
this.splice(index, 0, item);
};
var cachedData = $cacheFactory.get(key);
var insertPosition = pageSize * currentPage;
cachedData.insert(insertPosition, returnedData);
$cacheFactory.put(cachedData);
Probably a lot simpler than it would have to be in a real life scenario, but you get the idea.