在IndexedDB中保存日期存储一个空对象

时间:2014-07-22 13:58:31

标签: javascript date indexeddb

我试图在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。

2 个答案:

答案 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

之前,您可能需要序列化日期对象