angularjs - Breeze and data type when using a .select -


i'm curious if has insight why adding .select breeze query , returning single column cause date field parsed differently ? thought both queries should return same data / use same meta data date fields.

for example

retrieving entity includes date:     function getacase()     {         var returnpromise = q.defer();        var casequery = breeze.entityquery            .from("case")            .where("pkcaseid", "eq", 1013)         return q.delay(0)             .then(function()             {                 return manager.executequery(casequery)                     .then (function(data)                     {                     returnpromise.resolve();                     return data.results;                     })                     .fail(function(){$log.error("casedata query failed")});             }) ;         return returnpromise.promise();     } 

courtdate columns gets converted date : (actual date database 1/1/1950)

enter image description here

retrieving date column database:    function retrievecourtdate ()     {         var returnpromise = q.defer();         var query = breeze.entityquery             .from("case")             .where ("pkcaseid", "eq", 1013)             .select("courtdate");         return q.delay(0)             .then(function()             {                 return manager.executequery(query)                     .then (function(data)                 {                      returnpromise.resolve();                     return data.results;                 })                     .fail(function(){$log.error("date query failed")});             });         return returnpromise.promise();     } 

courtdate not converted:

enter image description here

displayed on screen as:enter image description here

ok, not bug but pain. when breeze executes query returns known entitytype, have metadata determines datatype every property in json returned server. allows take json iso8601 serialized date string "1996-07-13t00:00:00.000z" , convert javascript date object: fri jul 12 17:00:00 pdt 1996.

the problem when use breeze "select" statement result returned server anonymous object, , breeze doesn't know datatype of of properties on object. breeze does iterate on of properties of returned object determine if there embedded entities, can't determine property called "courtdate" in fact date datatype ( guess, there other issues that).

there workaround, anonymous objects contain dates, since know properties dates, can call breeze's datatype.parsedatefromserver method

  data.results.foreach(function(anon) {       anon.courtdate = breeze.datatype.parsedatefromserver(anon.courtdate);   } 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -