Я получаю сообщение об ошибке в Ember Transformer, пытающемся проанализировать дату в функции сериализации.
Сообщение об ошибке: «Попытка обработать событие didCommit
в ‹(подкласс DS.Model):ember1597:8260357> в состоянии root.loaded.updated.uncommitted».
Как ни странно, данные передаются корректно разобранные на сервер.
Код:
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
, но безуспешно. Я не совсем знаю, что здесь пошло не так, и поэтому не могу придумать решение. Кто-нибудь может помочь? Заранее спасибо.
изменить
Обходной путь: я переместил сериализацию в контроллер. Выглядит не так элегантно, но пока работает...