Don*_*mmy 11 html5 google-chrome indexeddb
我在创建它时已成功将以下内容添加到objectStore:
{ name: "John Doe", age: 21 }
Run Code Online (Sandbox Code Playgroud)
我使用了以下选项:
{ keyPath: "id", autoIncrement: true }
Run Code Online (Sandbox Code Playgroud)
我能够找到该记录,它显示了id = 1.但是,当我在下面运行此命令时,它会抛出一个错误:
var store = db.transaction( [ "employees" ], "readwrite" ).objectStore( "employees" );
var request = store.put( { name: "John Doe", age: 32 }, 1 );
Run Code Online (Sandbox Code Playgroud)
抛出:
DataError: DOM IDBDatabase Exception 0
Run Code Online (Sandbox Code Playgroud)
有谁知道什么是错的?我是否错误地指定了密钥?
更新
在IndexedDB的规范指出,第二个参数应该被允许:
interface IDBObjectStore {
...
IDBRequest put (any value, optional any key);
...
};
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用,但这确实有效:
store.put( { name: "John Doe", age: 32, id: 1 } );
Run Code Online (Sandbox Code Playgroud)
这是一个需要的错误.除非我还在做错事.
小智 15
错误意味着(请参阅此处获取完整列表):
提供给操作的数据不符合要求.
对象存储使用内联键,并提供了键参数.
您指定的keypath是指示商店使用内联键,但是当您指定外键作为第二个参数时put,它将失败.
| 归档时间: |
|
| 查看次数: |
18702 次 |
| 最近记录: |