Ember.js(烬数据):为什么兄弟姐妹关系消失了?

Ember.js (Ember Data): Why are sibling relationships disappearing?

本文关键字:兄弟姐妹 为什么 关系 消失了 js 数据 Ember      更新时间:2023-09-26

我和我的兄弟姐妹有个问题。与烬数据金丝雀一起工作。

我有以下数据模型:

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'数组。我认为这不会给你带来任何问题,我只是指出来,因为你可能找错了东西。

我猜想你的后端以某种方式限制了你的有效负载?