Ember.js(Ember Data):为什么兄弟关系消失了?

时间:2014-08-22 19:54:56

标签: javascript ember.js ember-data

我的兄弟姐妹有问题,很多关系都在消失。使用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;

抱歉超载。希望你能帮忙。

1 个答案:

答案 0 :(得分:0)

您正在以单数形式命名您的hasMany关联,这并非真正遵循约定。话虽这么说,你没有'应用'阵列。我不认为这会给你带来任何问题,我只是指出,因为你可能会搜索错误的东西。

我想你的后端会以某种方式限制你使用这个有效载荷?