我试图在IndexDB中保存一些对象。此对象的一个属性是Date Javascript对象。 此Date属性始终保存为IndexDB中的空对象。
var trans = db.transaction(["todo"], "readwrite");
var store = trans.objectStore("todo");
lastIndex++;
var myDateObject = new Date();
var request = store.put({
"id": lastIndex,
"text": todoText,
"date": myDateObject
});
但我得到的是:
{Key: 1,
Value {
Id: 1,
text: "myText",
date:{} // ??
}
}
由于文档可以这样做:
值每条记录都有一个值,可以包含任何可以的值 用JavaScript表示,包括布尔值,数字,字符串,日期, object,array,regexp,undefined和null。
可在此处阅读:https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB#key
Plunker重现: http://plnkr.co/edit/bcH3mmDC3dQ8S89J4dNl?p=preview
免责声明:我已经从http://embed.plnkr.co/ip6owK/preview回收了由Jayesh Chandrapal制作的Plunker。
答案 0 :(得分:4)
问题在于Chrome开发者工具,它没有正确显示数据,但数据位于IndexedDB中。
使用相同的plunker,我添加了一个新单元来绑定日期,并显示它。
<td>{{todo.date}}</td>
http://plnkr.co/edit/wVDgGFwhgOMJtelgZsEi?p=preview
我打开了一个Chromium问题: https://code.google.com/p/chromium/issues/detail?id=399224
答案 1 :(得分:0)
在保存db
之前,您可能需要序列化日期对象