我的对象结构是这样的:
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 IDBDatabase异常5.请问您能在这里找出错误的建议吗?我正在使用chrome 18来测试它。对象存储的创建很好,但无法添加数据
答案 0 :(得分:3)
当“提供给操作的数据不符合要求”时,抛出IndexedDB异常5。这通常是因为您添加了索引,例如,在提供缺少该属性的对象时。
此处,您的test
对象看起来与您指定的关键路径不匹配。
如果您希望将id
作为关键字,createObjectStore
必须是这样的:
var objectStore = db.createObjectStore('Dat', { keyPath:'id',autoIncrement: false});
作为另一个示例,或者,使用您的keyPath,您的test
对象需要看起来像这样不会抛出此错误:
var test={
test: { "id":"A" },
ChanName:"Discovery",
LCN:10
};