私はローカル Backbone.js アプリを実行しており、data という名前のローカル フォルダーを使用して初期データを配置しています。また、Backbone.router では、次のように ajax を使用して初期データを取得します。
p = $.ajax({
url: 'data/todolist.json',
dataType: 'json',
data: {},
success: function(data) {
var approuter = new AppRouter({data: data});
Backbone.history.start();
}
})
そして、initialize
私の方法はAppRouter
次のとおりです。
initialize: function(options){
this._data = options.data;
this._todos = new TodosCollection(options.data);
this._length = this._todos.length;
this._index = new CategoriesView({collection: this._todos});
},
私のアプリでは、Backbone.View 内の項目を作成、削除、更新するたびにthis.model.destroy()
、this.collection.add()
またはthis.model.set()
を使用してモデルとコレクションを更新します。しかし、これらの変更が初期データ (上記の「todolist.json」) に保存されていないようです。ページ全体を更新すると、アプリにはまだ初期データが表示されます。私がやりたいことは、ビューで何らかの変更が発生するたびにデータ ファイルが更新されることです。では、どうすればこれを達成できますか?
もう 1 つの質問: localStorage を使用してこれらのデータを保持したい場合はどうすればよいですか? ルーターで ajax 呼び出しを使用する必要はありませんか? Backbone.Collection.fetch()
最初にRouterのメソッドでメソッドを使用するだけinitialize
で、アプリが開始された後、 localStorage を使用するたびにデータが自動的に更新されますthis.model.destroy()
、this.collection.add()
またはthis.model.set()
?