我在ember js中保存日期时遇到了麻烦

时间:2014-06-10 01:07:47

标签: ember.js

使用ember输入助手时,我无法保存日期。 我创建了这个jsbin来显示问题: http://jsbin.com/kujot/4/edit

当我将更改保存到记录时,日期设置为{} 保存日期输入的正确方法是什么? 谢谢 JB

让它更好地运作 http://jsbin.com/kujot/5/edit

1 个答案:

答案 0 :(得分:1)

attr(' date')使用DateTransformserialize / deserialize仅在转换数据以便从一个来源转移到另一个来源时应用。话虽这么说,当您将日期字段绑定到文本字段时,您正在将其转换为字符串,正如您在下面的转换中所看到的,当它尝试序列化时,它会注意到它不是一个实例日期并将返回null。

DS.DateTransform = DS.Transform.extend({

  deserialize: function(serialized) {
    var type = typeof serialized;

    if (type === "string") {
      return new Date(Ember.Date.parse(serialized));
    } else if (type === "number") {
      return new Date(serialized);
    } else if (serialized === null || serialized === undefined) {
      // if the value is not present in the data,
      // return undefined, not null.
      return serialized;
    } else {
      return null;
    }
  },

  serialize: function(date) {
    if (date instanceof Date) {
      // Serialize it as a number to maintain millisecond precision
      return Number(date);
    } else {
      return null;
    }
  }

});

您可以创建自己的转换,将字符串解析为日期,也可以将curDate字段修复为Date实例。