Backbone.js で fetch 時に送信したパラメータを取得する方法

メモ。


Backbone.js で Collection を fetch しサーバ側からデータを取得に成功したら success がコールバックされるが、その際にサーバ側に送信したパラメータが欲しい事があった。

var User = Backbone.Model.extend({});
var Users = Backbone.Collection.extend({
  model: User,
  url: '/api/v1.0/users',
  parse: function (res) {
    return res.response;
  }
});
var collection = new Users();
var params = {
  userid: $('#userid').val(),
  password: $('#password').val()
};
collection.fetch({datatype: jsonp, data: params, success: function (collection, res) {
  // ここで送信した params['userid'] の値を取りたい 
}});

こうすればできた。

collection.fetch({datatype: jsonp, data: params, success: function (collection, res, options) {
  // ここで送信した params['userid'] の値を取りたい 
  console.log(options.data['userid']);
}});

http://documentcloud.github.com/backbone/#Collection-fetch


ドキュメントに書いてなかったので結局ソースコード見てやりかた分かった…。