var self = this self.page_size = parseInt(opts.pagesize) || 10 self.page = 1 self.num_pages = 5 self.count = 0 self.show_all = false update_count(new_count) { self.count = new_count self.num_pages = 1 + Math.floor(self.count / self.page_size) self.page = 1 self.paginate() } update_pagesize(e){ var new_size = parseInt(e.target.value) if (new_size > 0) { self.page_size = new_size self.num_pages = 1 + Math.floor(self.count / self.page_size) self.page = 1 } } goto(e) { self.page = parseInt(e.target.value) } first(e){ self.page = 1 self.paginate() } last(e){ self.page = self.num_pages self.paginate() } next(e){ if(self.page1) { self.page -= 1 self.paginate() } } all(){ self.show_all = !self.show_all if(self.show_all){ self.parent.paginate(0,self.count) }else{ self.page = 1 self.paginate() } } paginate(){ var first = (self.page - 1) * self.page_size var last = (self.page * self.page_size) self.parent.paginate(first, last) }