【问题标题】:Get Multiple pages of data at once with Backbone Collection使用 Backbone Collection 一次获取多页数据
【发布时间】:2023-03-16 18:47:01
【问题描述】:

我有这个 Collection mixin,我用它来尝试继续将多页数据拉入集合together,但我假设它在检测到传递给 fetch 的新选项时会自行重置我只得到最后一页数据。

var Pageable = {
  fetch: function(options) {
    var originalSuccess = options.success;
    options.data.page = 1;

    var doFetch = function(options) {
      var beforeLength = this.length;

      options.data = _.extend({page: options.data.page, per_page:100}, options.data);
      options.success = function(col, res, opts) {
        if (this.length === beforeLength) return originalSuccess(col, res, opts);
        options.data.page++;
        doFetch(options);
      }.bind(this);

      return Collection.prototype.fetch.call(this, options);
    }.bind(this);

    return doFetch(options);
  }
};

我想从这里你可以了解我正在尝试做的事情的要点,关于如何去做的任何想法?

【问题讨论】:

    标签: javascript backbone.js pagination backbone.js-collections


    【解决方案1】:

    想通了,您需要添加选项来告诉集合不要删除,而只是添加/更新...

    var Pageable = {
      fetch: function(options) {
        var originalSuccess = options.success;
    
        _.extend(options, {
          add: true,           // <----
          remove: false,       // <----
          update: true,        // <----
          data: {
            page: 1,
            per_page:100
          }
        });
    
        var doFetch = function(options) {
          var beforeLength = this.length;
    
          options.success = function(col, res, opts) {
            console.log(this.length, beforeLength);
            if (this.length === beforeLength) return originalSuccess(col, res, opts);
            options.data.page++;
            doFetch(options);
          }.bind(this);
    
          return Collection.prototype.fetch.call(this, options);
        }.bind(this);
    
        return doFetch(options);
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      相关资源
      最近更新 更多