I am getting an error in an Ember Transformer trying a parse a date in the serialize function.
Error message:
"Attempted to handle event didCommit
on <(subclass of DS.Model):ember1597:8260357> while in state root.loaded.updated.uncommitted."
Strangely enough, the data is transmitted correctly parsed to the server.
Code:
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 [];
}
});
The line item.set('value', moment(item.get('value')).format("DD.MM.YYYY"));
causes the error as commented out the error vanishes. I tried other things like setting a static value or setting the value using Ember.set
but without success. I do not quite know what went wrong here and thus cannot think of a solution. Can someone help? Thanks in advance.
edit
Workaround: I moved the serialization into the controller. Does not look as elegant but works for now...