2

私のオブジェクト構造は次のようなものです。

var test={
        "id":"A",
        "ChanName":"Discovery",
        "LCN":10
        };

これは、オブジェクトストアを作成するスニペットです。

var objectStore = db.createObjectStore('Dat', { keyPath:'test.id',autoIncrement: false});

var trans = db.transaction(["Dat"], webkitIDBTransaction.READ_WRITE);
         var store = trans.objectStore("Dat");
         var request=store.put(test);

テストオブジェクトを追加しようとすると、この例外DATA_ERR:DOM IDBDatabaseException5が発生します。ここで何が問題になっているのかアドバイスをいただけますか。これをテストするためにchrome18を使用しています。オブジェクトストアの作成は問題ありませんが、データを追加できません。

4

1 に答える 1

3

「操作に提供されたデータが要件を満たしていない」場合、IndexedDB Exception 5 がスローされます。これは通常、たとえば、その属性がないオブジェクトを提供しているときに、インデックスを追加したことが原因です。

ここでは、testオブジェクトがキーパスとして指定したものと一致していないようです。

idキーとして必要な場合は、次のcreateObjectStoreようにする必要があります。

var objectStore = db.createObjectStore('Dat', { keyPath:'id',autoIncrement: false});

別の例として、keyPath をそのまま使用すると、testこのエラーをスローしないようにオブジェクトを次のようにする必要があります。

var test={
 test: { "id":"A" },
 ChanName:"Discovery",
 LCN:10
};
于 2012-05-09T17:00:10.617 に答える