データを永続化するために backbone + backbone.localStorage を使用していますが、間違った動作をします:
ユーザーと呼ばれる1つの属性を持つモデル設定があります
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
次に、モデルを localStorage に保存し、クリアして、もう一度フェッチします。
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 つの新しいオブジェクトが作成されます...そして、毎回成長し続けます。