GitXplorerGitXplorer
t

meteor-paginated-subscription

public
64 stars
18 forks
2 issues

Commits

List of commits on branch master.
Unverified
d259adf0b7f163f24b235b3fee090d4796ee6434

Update README.md

committed 10 years ago
Unverified
797a2be57026c21bd27421b1acc1f0811f0df1e5

Update README.md

ttmeasday committed 11 years ago
Unverified
2133a2163575f569f90253f81314f21b2bf08d20

Fixed issue with stopping subscription

ttmeasday committed 11 years ago
Unverified
f44d171badcc2e6f87c752580be16c955cdb3bb8

Version bump

ttmeasday committed 11 years ago
Unverified
b0c665e34d54f21a16ca0f87a9faf45758007423

added onready callback

ssquidarth committed 11 years ago
Unverified
0ac0fede45bbc87003f13363f7bf50dfb4102cf5

Version bump

ttmeasday committed 11 years ago

README

The README file for this repository.

THIS PACKAGE HAS MOVED

percolate:paginated-subscription

Meteor Paginated Subscription

This package is an experiment that adds pagination to Meteor's standard subscriptions. It's a byproduct of the Telescope project.

Installation

Install via Meteorite:

$ mrt add paginated-subscription

Usage

This package makes available a single function Meteor.subscribeWithPagination. Like the built in Meteor.subscribe, it returns a handle, which should be used to keep track of the state of the subscription:

var handle = Meteor.subscribeWithPagination('posts', 10);

The arguments are as usual to Meteor.subscribe, with an exception:

  1. The last argument must be a number, indicating the number of documents per page. This can be followed by callback functions in style of Meteor.subscribe.

The paginated subscription expects you to have a publication setup, as normal, which expects as a final argument the current number of documents to display (which will be incremented, in a infinite scroll fashion):

Meteor.publish('posts', function(limit) {
  return Posts.find({}, {limit: limit});
});

The important part of all this is the handle, which has the following API:

  • handle.loaded() - how many documents are currently loaded via the sub
  • handle.limit() - how many have we asked for
  • handle.ready() - are we waiting on the server right now?
  • handle.loadNextPage() - fetch the next page of results

The first three functions are reactive and thus can be used to correctly display an 'infinite-scroll' like list of results. Please see the telescope project for an example of real-world usage.

TODO

Contributions are heavily encouraged. The obvious things to fix are:

  1. Do actual "pagination" rather than "infinite scroll" -- i.e. have an option to pass around an offset as well as limit.
  2. Tests, tests, tests

Please contact me if you want to have a go at these and I'll be happy to help in what ways I can.

LICENSE

MIT (c) Tom Coleman