对于映射的实体,Breeze日期未正确实现

时间:2014-06-04 19:07:08

标签: javascript breeze

我的服务器中有一个日期属性进入Breeze。它在JSON中看起来像这样。

"CreateTime":"2014-05-22T00:00:00.000"

该属性映射在元数据中,如下所示:

{
    "name":"CreateTime",
    "type":"Edm.DateTime",
    "nullable":"false",
    "precision":"7"
}

然而,在查询结果中,日期总是以纪元(1970年1月1日)结束。但是,当实体在Breeze中映射时,会发生 only 。如果我select反对该实体,以便我返回一个未映射的类型,则日期将通过相同的线路发送,但它可以正常工作。

如何让日期为映射实体正确实现?

使用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...
   ]
}

1 个答案:

答案 0 :(得分:1)

发现问题,这不是Breeze的问题。我的应用程序使用的主题依赖于date.js。显然,date.js overrides Javascript's Date.parse() function,由Breeze的DataType.parseDateAsUTC()使用。

Date.js的Date.parse()函数在遇到解析像上面那样的日期字符串时才返回null,这导致了问题。