0

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

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

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

4

1 回答 1

0

有一个 Backbone分页器可用。我自己没有使用过它,所以我无法评论它有多好。

于 2013-09-04T19:45:01.667 回答