本地存储设置初始数据?

时间:2013-12-01 12:59:08

标签: javascript backbone.js local-storage

我正在使用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”的数据然后单独留下?

1 个答案:

答案 0 :(得分:1)

我会使用$.ajax()显式获取初始数据,然后依靠backbone-localstorage等扩展来管理它。

更具体地说:

$.ajax('path/to/data.json')
    .done(function(data) {
        coll = new Coll(data);
    );

添加错误处理和选项