使用ember输入助手时,我无法保存日期。 我创建了这个jsbin来显示问题: http://jsbin.com/kujot/4/edit
当我将更改保存到记录时,日期设置为{} 保存日期输入的正确方法是什么? 谢谢 JB
让它更好地运作 http://jsbin.com/kujot/5/edit
答案 0 :(得分:1)
attr(' date')使用DateTransform
。 serialize
/ 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实例。