使用分页加载数据

时间:2013-09-04 18:56:52

标签: backbone.js

我想在骨干中做分页。我有一个选择框,当我点击它时,我希望它显示特定数量的数据。

<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);

但是如何使用分页加载我的消息模板。你能帮助我或者你知道任何相关的例子吗?

1 个答案:

答案 0 :(得分:0)

有一个可用的主干paginator。我自己没有用它,所以我不能评论它有多好。