IndexedDB更新记录

时间:2014-10-03 10:23:43

标签: javascript indexeddb

尝试更新记录名称字段,但不是更新记录,而是创建新记录。

我的代码

function editName(e) {
var transaction = db.transaction(["people"],"readwrite");
var store = transaction.objectStore("people");
var request = store.get(5);

request.onsuccess = function(e) {
    var data = e.target.result;
    data.name = "John";

    var objRequest = store.put(data);

    objRequest.onsuccess = function(e){
        console.log('Success in updating record');
    };
}

}

寻找记录5并尝试将其名称字段更改为John。我一直在关注雷蒙德·卡姆登教程http://code.tutsplus.com/tutorials/working-with-indexeddb-part-2--net-35355并搜索其他示例,例如IndexedDB update by id,但似乎无法使它们适应我需要的工作。

1 个答案:

答案 0 :(得分:0)

感谢Tiffany Brown的文章,可以在https://dev.opera.com/articles/introduction-to-indexeddb/找到,我找到了一个解决方案,即在 put 调用中添加密钥。

var objRequest = store.put(data, +r);

Josh在他的回答Indexeddb adds a new value instead of updating an existing value中解释说,根据天气,对象商店是否具有关键路径,它可能与内嵌或外线的密钥有关。