我和我的兄弟姐妹有个问题。与烬数据金丝雀一起工作。
我有以下数据模型:
import DS from 'ember-data';
export default DS.Model.extend({
// More here, discarded for brevity...
app: DS.hasMany('app', { async: true }),
paymentMethod: DS.hasMany('paymentMethod', { async: true })
});
当用户在删除paymentMethod后以以下方式更新时:
var paymentMethod = this.get('content'),
currentUser = this.session.get('currentUser.content');
currentUser.get('paymentMethod').then(function ( paymentMethods ) {
paymentMethods.removeObject(paymentMethod.get('id'));
paymentMethod.destroyRecord();
currentUser.save();
}, handleError);
或按以下方式保存:
var paymentMethod = self.store.createRecord('payment-method', paymentMethodData);
paymentMethod.save().then(function ( PaymentMethod ) {
currentUser.get('paymentMethod').addObject(PaymentMethod);
currentUser.save().then(function ( /* record */ ) {...
将apps
设置为空的[]
。它也会以相反的方式发生,删除或添加带有paymentMethod的应用程序将取消paymentMethod数组的设置。
我有下面的序列化器,但是在记录到达序列化器之前,关系被设置为一个空数组:
var json = {
_id: user.get('id'),
name: {
first: user.get('firstName'),
last: user.get('lastName'),
company: user.get('companyName')
},
login: {
email: user.get('email'),
password: user.get('password')
},
app: user.get('app').mapProperty('id'),
paymentMethod: user.get('paymentMethod').mapProperty('id'),
time_stamp: user.get('time_stamp')
};
return json;
很抱歉。
您正在以单数命名您的hasMany关联,这实际上不符合惯例。也就是说,你没有'apps'数组。我认为这不会给你带来任何问题,我只是指出来,因为你可能找错了东西。
我猜想你的后端以某种方式限制了你的有效负载?