1

オブジェクトのJSON配列を返すRestfulサービスがあります。このサービスにより、ユーザーは最大の結果とデータのページ付けを指定できます。このサービスをコレクションにマップし、max_resultをデフォルトで10ページとページ1に設定します。次のページからデータをフェッチし、コレクション内のモデルを更新/変更するには、どうすればよいですか。バックボーンコレクション:

define(['backbone','models/Video'],function(Backbone,Video) {
return Rock = Backbone.Collection.extend ({
    model:Video,
    url:"/root/max_result/page"
});
});
4

1 に答える 1

1

'/root/10/2'では、URLは2ページのようになりますか?

define(['backbone','models/Video'],function(Backbone,Video) {
  return Videos = Backbone.Collection.extend ({
    model:Video,
    initialize: function(models, options){
        // get options.genre or use 'rock' as default
        this.genre = options && _.has(options, 'genre') ? options.genre : 'rock';
    },
    fetch: function(options){
       // make sure we have options object
       options = options ? _.clone(options) : {};

       // if no url in options, create url using options.page
       if(!_.has(options, 'url')){
         options.url = "/" + this.genre + "/10/" + options && _.has(options, 'page') ? options.page : 1;
       }

       return Backbone.Collection.prototype.fetch.apply(this, [options]);
    }
  });
});

// fetch page 3
var rock = new Videos(null, {genre: 'rock'});
rock.on('reset', function(){
    // each time you fetch, this will be called.
});
rock.fetch({page:3});
于 2013-03-07T06:23:12.230 に答える