当我保存一个Parent对象(它有许多Child对象)时,这种关系似乎被打破了。 Ember docs对此问题保持沉默。
我需要做什么才能使Parent对象仍显示Child对象?
当执行此操作时,我希望父名称将从“Taylor”更改为“Matt”,而Child,“Ben”将保持不变并保留在页面上。目前,该操作会从Parent中删除Child。
saveParent: function() {
this.store.find('parent', 1).then(function (parent) {
parent.set('name', 'Matt');
parent.save();
});
}
jsbin示例:http://jsbin.com/zodorule/8/
答案 0 :(得分:2)
这是JSONSerializer和hasMany关系的问题。你可以查看'固定'jsbin:http://jsbin.com/zodorule/13
我将此添加到您的代码中并且可以正常运行:
DS.JSONSerializer.reopen({
serializeHasMany : function(record, json, relationship) {
var key = relationship.key;
var relationshipType = DS.RelationshipChange.determineRelationshipType(
record.constructor, relationship);
if (relationshipType === 'manyToNone'
|| relationshipType === 'manyToMany'
|| relationshipType === 'manyToOne') {
json[key] = Ember.get(record, key).mapBy('id');
// TODO support for polymorphic manyToNone and manyToMany
// relationships
}
}
});