Backbone.paginator - Получить в JSON оригинальных моделей
Я использую Backbone.Paginator clientPager.
В настоящее время он копирует модели, полученные с сервера внутри this.origModels. И изменяет this.models для усеченной версии с нумерацией страниц.
Когда я делаю collection.toJSON, я получаю только усеченную версию. Я хотел бы получить toJSON для origModels? Я пытался исследовать внутренности кода Backbone. Но не смог добиться успеха.
Из Backbone.js
toJSON: function(options) {
return this.map(function(model){ return model.toJSON(options); });
}
var methods = ['forEach', 'each', 'map', 'collect', 'reduce', 'foldl',
'inject', 'reduceRight', 'foldr', 'find', 'detect', 'filter', 'select',
'reject', 'every', 'all', 'some', 'any', 'include', 'contains', 'invoke',
'max', 'min', 'toArray', 'size', 'first', 'head', 'take', 'initial', 'rest',
'tail', 'drop', 'last', 'without', 'indexOf', 'shuffle', 'lastIndexOf',
'isEmpty', 'chain'];
// Mix in each Underscore method as a proxy to `Collection#models`.
_.each(methods, function(method) {
Collection.prototype[method] = function() {
var args = slice.call(arguments);
args.unshift(this.models);
return _[method].apply(_, args);
};
});
Я пытался сделать следующее, но не получилось:(
var args = [].slice.call(function(model) { return model.toJSON(); });
args.unshift(this.origModels);
var jsonmodels = _['map'].apply(_, args);
1 ответ
Я исправил это с помощью следующего кода,
var jsonmodels = _.map(this.collection.origModels, function(model){ return model.toJSON(); });