2014-10-03 161 views
0

嘗試更新記錄名稱字段,但不更新記錄,而是創建新記錄。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和試圖改變它的名字領域的約翰。我一直在關注Raymond Camden教程http://code.tutsplus.com/tutorials/working-with-indexeddb-part-2--net-35355並搜索其他示例,如IndexedDB update by id,但似乎無法使其適應我需要的工作。

+0

你可以分享你如何定義對象庫嗎? – 2014-10-03 11:00:41

+0

嗨雷蒙德剛剛發現了這一點。我需要將記錄的id放入objRequest中。 var objRequest = store.put(data,+ r); r是關鍵數字。就像說我認爲你的教程非常有用,只是因爲刪除和更新功能而迷失了方向。 – csb 2014-10-03 11:10:52

+0

有趣。 Put的文檔(https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.put)表示指定PK是可選的。在我的測試中,我把它留給了我,因爲我的對象包含了PK。想知道你爲什麼沒有? – 2014-10-03 11:19:05

回答