我正在使用 Ember Data beta2,并且我设置了 hasMany 关系。
创建子记录时,是否必须在父记录的相应属性上使用 pushObject?
在查看文档时,我觉得我需要正确设置记录的父属性并保存它。
我是这样做的:
addPlugin: function() {
//get the value
var title = this.get('newPluginName');
if (!title.trim()) { return; }
var plugin = {
name: title,
category: this.get('model'),
url: ''
};
var plugin = this.store.createRecord('plugin', plugin);
plugin.save();
//clear the text field
this.set('newPluginName', '');
$("#new-plugin").blur();
}
我在 Chrome 的 Ember 检查器中看到新创建的记录,它不是脏的,但它不存在于父列表中,刷新后它就消失了。
最佳答案
对我有用的是:
var child = this.get('store').createRecord('child', {
name: 'New Child',
parent: parent
};
child.save();
parent.get('children').addObject(child);
// My backend automatically adds the inverse of relationships when saving
// the child, so I don't need to save the parent separately
我不知道 addPlugin
属于什么,但是如果您从 ChildrenArrayController 创建子项,您可能需要包含
needs: ['parent']
在你的 Controller 中。在创建 child 并将其添加到 parent 之前,您需要调用:
var parent = this.get('controllers.parent');
关于javascript - Ember Data- 在 hasMany 关系中创建记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917199/