我在尝试解析序列化函数中的日期的 Ember 转换器中遇到错误。
错误消息:“在状态 root.loaded.updated.uncommitted 时尝试处理didCommit
<(DS.Model 的子类):ember1597:8260357> 上的事件。”
奇怪的是,数据被正确解析地传输到服务器。
代码:
DS.Transform.extend({
deserialize : function(serialized) {
var array = [];
if (Ember.isArray(serialized)) {
serialized.forEach(function(item) {
if (item.feldTyp === "DATE_FIELD" && item.value) {
Ember.set(item, "value", moment(item.value, "DD.MM.YYYY"));
}
array.addObject(Ember.Object.create(item));
});
}
return array;
},
serialize : function(deserialized) {
if (Ember.isArray(deserialized)) {
deserialized.forEach(function(item) {
if (item.get('feldTyp') === "DATE_FIELD" && item.get('value')) {
item.set('value', moment(item.get('value')).format("DD.MM.YYYY"));
}
});
return deserialized;
}
return [];
}
});
该行item.set('value', moment(item.get('value')).format("DD.MM.YYYY"));
导致错误消失,因为注释掉了错误消失。我尝试了其他方法,例如设置静态值或使用设置值Ember.set
但没有成功。我不太清楚这里出了什么问题,因此想不出解决办法。有人可以帮忙吗?提前致谢。
编辑
解决方法:我将序列化移动到控制器中。看起来不那么优雅,但现在可以使用......