Backbone.js の問題で立ち往生しています。
私はsiuying の memorySync プラグインを使用して、モデル、コレクション、およびそれらに関連するメソッドを利用していますが、実際にはそれらをサーバーに同期していません。
このコード:
n0 = karass.nodes.create();
n1 = karass.nodes.create();
Backbone.memorySync('update', karass.nodes, {});
次のエラーが表示されます。
Uncaught TypeError: Cannot read property 'wait' of undefined backbone.js:466
_.extend.save.options.success backbone.js:466
Backbone.memorySync backbone.memory.js:78
Backbone.sync backbone.localStorage.js:188
_.extend.sync backbone.js:276
_.extend.save backbone.js:476
_.extend.create backbone.js:847 (anonymous function) test.js:21
これは
nodes
単なる Backbone.Models です (2 つの関数がありますが、それらをコメントアウトすると同じエラーが発生します)。実質的に空のモデルです。ノードのコードは次のとおりです。
nodes = new (Backbone.Collection.extend({
model: Node,
store: new MemoryStore('nodes'),
}))();
スタック トレースからわかるように、私も使用しています I know that the memorySync is a year old. Backbone.js 0.9.10 を使用しているので、memorySync プラグインを修正するために何ができるか知っているかもしれません。
私を最も混乱させているのは、nodes コレクションで MemoryStore を使用しているにもかかわらず、localStorage がスタックトレースに表示されることです。
編集:ああ、私も次のように再定義Backbone.getSyncMethod
しました:
Backbone.getSyncMethod = function(model) {
if(model.localStorage || (model.collection && model.collection.localStorage)) {
return Backbone.localSync;
}
if(model.store || (model.collection && model.collection.store)){
return Backbone.memorySync;
}
return Backbone.ajaxSync;
};
Backbone、localStorage、および memorySync を含めた後。