2013-02-22 40 views
2

當我嘗試使用.add將對象添加到objectStore時,控制檯顯示此錯誤: DataError:提供給操作的數據確實不符合要求。如果有人可以知道這個錯誤來自哪裏,它確實會幫助我。這是代碼:在索引數據庫中添加對象時,「提供給操作的數據不符合要求」錯誤

​​
+0

塔里亞屬性的價值是什麼?如果我看一下這個例子,它就是你的情況中的一個變量。如果這是一個函數或者不能用JSON序列化的東西,那麼你不能保存它。 – 2013-02-25 12:53:57

回答

0

這是一個簡單的錯字。 createObjectStore()方法的自動遞增選項必須拼寫爲autoIncrement(大寫字母I),而不是autoincrement

會發生什麼情況是您的對象存儲是在沒有密鑰生成器的情況下創建的,因此添加對象時它正在根據您的密鑰路徑查找id屬性。由於該物業不存在,您可以獲得DataError

+0

對不起,感謝您接受的時間,但不是這樣,我確實改變了它,keyPath太大聲了,但它不是那 – AssassinPinguin 2013-02-22 16:55:59

3

嘗試keyPath: 'keyPath'autoIncrement: false一旦你提供一個「主鍵」,你必須自動增量設置爲false看到它here

+1

您的鏈接幫助解決了我無關的問題:-) – 2015-01-21 08:16:58

3

您試圖保存一個DOM對象。根據內容的不同,您將會或將無法保存您的數據。嘗試將tarea屬性從對象中移出並保存。讓我知道什麼是tarrea屬性

var todo = document.querySelector('#the-do').value; 
var request = objStore.add({tarea: todo, clase: "pendiente"}); 
+0

這是正確的。存儲在IDB中的東西必須能夠被構建克隆。 DOM對象不起作用。 https://developer.mozilla.org/en-US/docs/DOM/The_structured_clone_algorithm#Things_that_don't_work_with_structured_clones – dgrogan 2013-02-25 21:51:16

相關問題