2

私はしばらくの間Backbone.jsをいじくり回してきました。私はほとんどのアプリデータを保存するためにlocalStorageを使用しています。コレクションをプレーンテキストにエクスポートして、再度インポートできるかどうか疑問に思いました。つまり、データをエクスポートすると、コレクションの「プレーンテキスト」バージョンでHTMLテキストボックスが表示され、データをインポートして戻す必要がある場合は、空のテキストボックスに貼り付けるだけのバックアップ機能を作成したいと思います。コレクションを再作成します。

これは可能ですか、これを達成するためのヒントはありますか?JSON形式にエクスポートしてインポートし直すことを考えていました。それは実行可能ですか?

psここにコードがないことは知っていますが、どんなアイデアでも大歓迎です。

4

1 に答える 1

4

toJSONコレクションをシリアル化するために使用できます。(実際、 Backbone.js はこれを の主な用途として言及していますcollection.toJSON())。JSON.stringifyJSON オブジェクトを文字列に変換するために使用します。

var json = myCollection.toJSON();
var serializedString = JSON.stringify(json);

コレクションを復元するには、手順を逆にします。

  1. JSON.parse生の文字列を JSON オブジェクトに変換する
  2. collection.resetJSON オブジェクトをコレクションに変換するには

これが実際の例です。

// setup test collection
var collection = new Backbone.Collection();
collection.add(new Backbone.Model({ hello: "world" }));

// serialize it to a string
var json = collection.toJSON();
var serialized = JSON.stringify(json);
console.log(serialized);

// get it back
var json2 = JSON.parse(serialized);
var collection2 = new Backbone.Collection();
var restored = collection2.reset(json2);

// check that it worked
console.log(restored.at(0).get("hello"));

</p>

于 2012-11-08T17:33:05.930 に答える