2013-02-22 27 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

相关问题