バックボーン モデルのデータ ソースとして .CSV ファイルを使用するアプリケーションを構築しています。「json」ではなくdataType「text」を使用するように同期を上書きする最良の方法は何ですか? ベストプラクティスなどを探しています...
残念ながら、Backbone.sync で使用される「dataType」パラメータはハードコードされており、options.dataType に応答しません。問題のコードは、注釈付きのソースで見ることができます - http://backbonejs.org/docs/backbone.html#section-166
これは、モデルで作成した同期方法です。そのほとんどは、Backbone.sync から直接コピー ペーストしたものです。私のモデルも読み取り専用です。
sync: function(method, model, options){
//overwrite sync to read a .CSV document. if
//the default Backbone sync would let you
//specify the "dataType" property, this wouldn't
//be necessary.
if(method === 'read'){
options || (options = {});
var success = options.success;
options.success = function(resp, status, xhr) {
if (success) success(json, status, xhr);
};
var params = {type: 'GET', dataType: 'text', url: this.url};
return $.ajax(_.extend(params, options));
}
},
CSV 応答を処理するために「parse」を上書きしました。
parse: function(data, xhr){
return $jQuery.parseJSON( CSVParser.toJSON(data) );
},