【发布时间】:2014-02-13 22:42:05
【问题描述】:
我在尝试在序列化函数中解析日期的 Ember 转换器中遇到错误。
错误信息:
“在 root.loaded.updated.uncommitted 状态下尝试处理 上的事件 didCommit。”
奇怪的是,数据被正确解析后传输到服务器。
代码:
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 设置值,但没有成功。我不太清楚这里出了什么问题,因此想不出解决方案。有人可以帮忙吗?提前致谢。
编辑
解决方法: 我将序列化移动到控制器中。看起来不那么优雅,但现在可以使用......
【问题讨论】:
标签: javascript ember.js ember-data transformer