Ember不发布日期属性

时间:2014-09-08 18:09:41

标签: ember.js ember-data ember-cli

我的Ember模型上有date属性:

// models/foo.js
export default DS.Model.extend({
  name: attr('string'),
  startDate: attr('date')
});

我的组件将ISO 8601格式的日期设置为is convention

// components/date-picker.js
export default Ember.Component.extend({
...
picker.on({
  set: function(timestamp) {
    // timestamp.select is a unix timestamp
    var date = new Date(timestamp.select);
    var iso = date.toISOString();       
    self.set('property', iso);
  }
});
...

我可以在Ember检查员身上看到这一点:

Ember Inspector

但是,当Ember将数据发布到我的后端时,startDatenull

有没有人知道为什么会这样?

1 个答案:

答案 0 :(得分:3)

日期转换期望您的属性是日期对象客户端,而不是字符串。它会在序列化时检查它是否是Date的实例。

serialize: function(date) {
  if (date instanceof Date) {
    return toISOString.call(date);
  } else {
    return null;
  }
}

最好将属性设置为日期对象,并让它在序列化时调用toISOString以发送到服务器。