使用Backbone.js的+ backbone.localStorage.js复制localSto

2019-07-29 08:28发布

我使用的骨干+ backbone.localStorage坚持我的数据,我也得到一个错误的行为:

我有一个属性,叫做用户模式设置

Settings = Backbone.Model.extend({
    localStorage : new Backbone.LocalStorage('settingsStore')
});
var settings = new Settings();
settings.set({user: 'USERNAME'});
settings.save();

此代码后,如果我输出weinre的settings.attributes数据,我得到以下几点:

  settings.attributes  
   Object  
   id: "3ac78cfb-ad60-1ab8-8391-f058ae9bfcfb"  
   user: "USERNAME"  
   __proto__: Object

然后,我的模型保存到本地存储,清晰,并再次获取它:

settings.save();
settings.clear();
settings.fetch();

而问题是,如果我输出的settings.attributes,现在这个属性被存储在一个嵌套的对象中:

   settings.attributes  
   Object  
   0: Object  
       id: "3ac78cfb-ad60-1ab8-8391-f058ae9bfcfb"  
       user: "USERNAME"  
       __proto__: Object  
   __proto__: Object

而问题是,当我为了再次修改设置的用户名,一个新的属性添加如下:

   settings.attributes  
   Object  
   0: Object  
   id: "3ac78cfb-ad60-1ab8-8391-f058ae9bfcfb"  
   user: "USERNAME"  
   __proto__: Object  
   user: "NEWUSER"  
   __proto__: Object 

如果我保存这个模型,把它拿来,我再次得到属性2个新对象...,是它让每一次成长。

Answer 1:

答案由fguillen给出的链接问题给出了正确的答案这个问题。

你只需要创建模型对象与硬编码的“身份证”,如果你想正确的储存。

这样做后:

var settings = new Settings({ id: 1 });

保存()和fecth()方法的正常工作。 很明显,你必须要小心不要重复2级ID的...



文章来源: Duplication localStorage data using backbone.js + backbone.localStorage.js