我有一个日期属性从我的服务器进入 Breeze。 JSON 看起来像这样
"CreateTime":"2014-05-22T00:00:00.000"
属性在元数据中的映射如下:
{
"name":"CreateTime",
"type":"Edm.DateTime",
"nullable":"false",
"precision":"7"
}
但是,在查询结果中,日期始终以纪元结束(1970 年 1 月 1 日)。但是,这种情况仅发生在实体在 Breeze 中映射时。如果我针对实体选择
以便返回未映射的类型,则日期将以相同的方式通过线路发送,但效果很好。
如何获取映射实体正确实现的日期?
使用 Breeze v1.4.11
更新
这是在我的实体上调用 getEntityType
的结果:
{
"shortName":"VDisplayEvent",
"namespace":"Model",
"autoGeneratedKeyType":"None",
"defaultResourceName":"VDisplayEvents1",
"dataProperties":[
// Other properties...
{
"name":"createTime",
"dataType":"DateTime",
"isNullable":false,
"defaultValue":"1900-01-01T08:00:00.000Z",
"validators":[
{
"name":"required"
},
{
"name":"date"
}
]
},
// Other properties...
]
}
最佳答案
问题已找到,而且不是 Breeze 的问题。我的应用程序正在使用一个主题,该主题依赖于 date.js 。显然,date.js overrides Javascript's Date.parse()
function ,由 Breeze 的 DataType.parseDateAsUTC()
使用。
Date.js 的 Date.parse()
函数在解析像上面这样的日期字符串时仅返回 null,这导致了问题。
关于javascript - 对于映射实体, Breeze 日期未正确具体化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045604/