首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤结果重置为原始结果集后的Backbone.js fetch

过滤结果重置为原始结果集后的Backbone.js fetch
EN

Stack Overflow用户
提问于 2015-12-02 20:01:46
回答 1查看 313关注 0票数 0

我在Backbone中使用Backgrid和Pagination,并使用fetch来过滤集合,这反过来会更新Backgrid表和分页控件。

代码语言:javascript
复制
 filterFunction: function (query) {
    _.each(query, function (q) {
      if(List.grid.collection.queryParams.hasOwnProperty(q.key)) {
        var firstValue = List.grid.collection.queryParams[q.key]
        List.grid.collection.queryParams[q.key] = firstValue + ',' + q.value
      } else {
          List.grid.collection.queryParams[q.key] = q.value
          }
       })
      List.grid.collection.fetch(
        {
          'reset': true
     })
  }

它工作得很好,一旦集合被过滤,我可能会有一个长度为6而不是60的集合。当我想要取消过滤集合并返回到原始的60长集合时,我的问题就出现了。我确实认为我可以只调用原始的listAllFunction --但是这个函数将背景网格和分页控件重新绘制到页面上。我认为更好的方法是编写某种类型的函数来重写fetch以请求所有结果。所以就像这样:

代码语言:javascript
复制
List.grid.collection.**fetchALL** (
   {
      'reset' : true,
      'url': // tell it to go and get ALL the results?

   }
)

这个是可能的吗?或者对我应该采取的方法有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-12-18 23:34:27

当您决定使用fetch和自定义查询参数过滤集合时,您可以在fetch之前重置集合还原原始queryparams:

代码语言:javascript
复制
List.grid.collection.queryParams = Backbone.PageableCollection.prototype.queryParams;
List.grid.collection.fetch({reset: true});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34042254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档