バックボーンでページネーションを行いたい。選択ボックスがあり、それをクリックすると、特定の数のデータが表示されます。
<div class="results right" >
<form>
<label for="results">Results pr. page</label>
<select name="results" id="messageSelect">
<option value="25" >25</option>
<option value="50" >50</option>
<option value="100" >100</option>
<option value="500" >500</option>
</select>
</form>
</div>
これは私のコレクションです:
pagination : function(perPage, page) {
page = page - 1;
var collection = this;
collection = _(collection.rest(perPage * page));
collection = _(collection.first(perPage));
return collection.map( function(model) {
return model.toJSON();
});
},
#messageSelect が変更されたとき (ユーザーが数字を選択したとき) changedSelect が呼び出され、各ページに表示される値を取得し、ページの総数を計算します。しかし、正直なところ、病棟の後に何をすべきかわかりません!
events : {
"change #messageSelect" : "changedSelect",
},
changedSelect : function(e){
this.selectedMessageId = $("#messageSelect :selected").attr("value");
console.log("id of select is", this.selectedGroupId);
var maxPages = Math.ceil(this.collection.messageCount / this.pageSize);
console.log("max", maxPages);
var pageToLoad = this.currentMessagePage + 1;
console.log("load me page", pageToLoad);
ページネーションを使用する前に、次の方法ですべてのメッセージをロードしました。
var messageView = new MessageView({
model : item
});
this.$el.append(messageView.render().el);
しかし、ページネーションを使用してメッセージ テンプレートを読み込むにはどうすればよいでしょうか。私を助けてくれますか、関連する例を知っていますか?