2015-12-02 6 views
0

Я использую Backgrid и разбиение на страницы с помощью базовой линии, и я использую fetch для фильтрации коллекции, которая, в свою очередь, обновляет таблицу Backgrid и элементы управления Paginations.Backbone.js выборка после фильтрации результатов сброса в исходный набор результатов

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. Моя проблема возникает, когда я хочу unfilter сбор и вернуться к оригиналу 60 долго коллекция. Я действительно думал, что могу просто вызвать исходный списокAllFunction, но эта функция перерисовывает элементы backgrid и pagination на странице. Я думаю, что гораздо приятнее было бы написать какую-то функцию, которая переопределяет выборку, чтобы запрашивать ВСЕ результаты. Так что-то вроде:

List.grid.collection.**fetchALL** (
    { 
     'reset' : true, 
     'url': // tell it to go and get ALL the results? 

    } 
) 

Возможно ли это? Или любые предложения по подходу, который я должен взять?

ответ

0

Как вы решили отфильтровать коллекцию с помощью выборки с Params пользовательских запросов, можно сбросить коллекцию восстановления оригинальных queryparams до выборки:

List.grid.collection.queryParams = Backbone.PageableCollection.prototype.queryParams; 
List.grid.collection.fetch({reset: true});