我在使用Ember应用程序更新关系时遇到问题:我有一个node
对象,其中包含以下模型定义:
App.Node = DS.Model.extend({
name: DS.attr(),
children: DS.hasMany('node', {
inverse: 'parent',
async: true
}),
parent: DS.belongsTo('node', {
inverse: 'children',
async: true
})
});
然后我在我的新人中做到了这一点。控制器。
add: function() {
var model = this.get('newModel'),
rec,
self = this,
parent = this.get('model');
rec = this.store.createRecord('node', model);
rec.set('parent', parent);
rec.save().then(function(newrec) {
parent.get('children').addObject(newrec);
parent.save().then(function(resolve) {
self.transitionToRoute('node');
}, function(reject) {
console.log("ERR UPDATE PARENT:", reject);
});
}, function(err) {
console.log(
'Unable to add node "%@": %@.'.fmt(name, err.statusText));
});
}
如果正确保存子节点(使用POST),会发生什么。 parent
属性具有父节点的ID。然后我尝试将新创建的子项添加到父项并保存父项。这适用于(带有PUT)但是孩子们可以使用PUT。从有效负载到服务器的属性完全丢失。我做错了什么?