当我保存一个父对象(其中有许多子对象)时,这种关系似乎被破坏了。这Ember 文档 http://emberjs.com/guides/models/persisting-records/在这个问题上保持沉默。
我需要做什么才能使父对象仍然显示子对象?
运行此操作时,我预计父名称将从“Taylor”更改为“Matt”,而子名称“Ben”将保持不变并保留在页面上。目前,该操作将从父级中删除子级。
saveParent: function() {
this.store.find('parent', 1).then(function (parent) {
parent.set('name', 'Matt');
parent.save();
});
}
jsbin 示例:http://jsbin.com/zodorule/8/ http://jsbin.com/zodorule/8/
这是 JSONSerializer 和 hasMany 关系的问题。您可以检查这个“固定”jsbin:http://jsbin.com/zodorule/13 http://jsbin.com/zodorule/13
参考这个问题:http://discuss.emberjs.com/t/ember-data-fixture-adapter- saving-record-loses-has-many-relationships/2821 http://discuss.emberjs.com/t/ember-data-fixture-adapter-saving-record-loses-has-many-relationships/2821
我将其添加到您的代码中并且它有效:
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
}
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)