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
ドキュメントに書いてなかったので結局ソースコード見てやりかた分かった…。