我的兄弟姐妹有问题,很多关系都在消失。使用Ember数据金丝雀。
我有以下数据模型:
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;
抱歉超载。希望你能帮忙。
答案 0 :(得分:0)
您正在以单数形式命名您的hasMany关联,这并非真正遵循约定。话虽这么说,你没有'应用'阵列。我不认为这会给你带来任何问题,我只是指出,因为你可能会搜索错误的东西。
我想你的后端会以某种方式限制你使用这个有效载荷?