我正在使用backbone.js,我在.json文件上有预先存在的数据,我想在用户启动应用程序时将其用作设置,以便它存储到本地存储中,然后再次使用。
示例:我在我的集合上运行每个,然后创建如下所示的每个属性,这个集合是本地存储中的数据然后我注释掉json url,并从本地存储中获取数据在这一点上。
_.each(this.players, function(player) {
playersCollection.create({
name: player.get('name'),
team: player.get('team'),
team_id: player.get('team_id'),
number: player.get('number'),
points: player.get('points')
})
}, this);
所以有一个很好的方法可以做到这一点,甚至可能像一个按钮,说填充应用程序(幕后它只是从url方法存储数据到本地存储然后关闭url方法),这是一个好/馊主意?
我想了解获取此现有数据的最佳方法,从.json url在应用集上运行到本地存储,然后直接使用本地存储进行CRUD
操作。
这是我的骨干系列
// Players Collection
// ---------------
// The collection of players is backed by *localStorage* instead of a remote
// server.
window.PlayersCollection = Backbone.Collection.extend({
model: Player,
//url: data/players.json
localStorage: new Backbone.LocalStorage("players-backbone"),
});
// Create our global collection of **playersCollection**.
window.playersCollection = new PlayersCollection;
基本上我希望从这个问题中获得的是填充本地存储数据的最佳方式,因为大多数教程都是从头开始讨论,你知道用户管理系统或待办事项列表,最初没有数据,用户创建要存储到本地存储器中的数据。好吧,我的数据非常重要,可以让我的应用程序正常运行。
编辑:让我添加,说如果我从本地存储中删除所有数据,重新填充它我必须注释掉playersCollection.fetch
然后硬编码json数据进入我的集合,然后运行我上面发布的代码,以填充我的本地存储。此时我可以编辑数据,并很好地使用应用程序。
有没有办法说明id为“myid”的本地存储是否为空,然后使用“预先存在的”数据然后将我上面写的代码呈现给create
并填充本地存储,否则如果它包含与“myid”的数据然后单独留下?
答案 0 :(得分:1)
我会使用$.ajax()
显式获取初始数据,然后依靠backbone-localstorage等扩展来管理它。
更具体地说:
$.ajax('path/to/data.json')
.done(function(data) {
coll = new Coll(data);
);
添加错误处理和选项