我正在做一个本地 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”。当我刷新整个页面时,应用程序仍然显示初始数据。我想要做的是每次我的视图发生一些变化时数据文件都会更新。那么我应该如何实现呢?
还有一个问题:如果我想使用 localStorage 来保存这些数据怎么办?我不需要在路由器中使用 ajax 调用吗?我一开始只是Backbone.Collection.fetch()
在Router的initialize
方法中使用了一个方法,应用程序启动后,每次使用时localStorage都会自动更新数据this.model.destroy()
,this.collection.add()
还是this.model.set()
?