ember适配器问题

时间:2013-02-05 18:33:43

标签: javascript recursion ember.js ember-data

我已经设置jsFiddle来证明我正在尝试学习Ember.js的问题

我有这些模特:

App.User = DS.Model.extend({
    firstName: DS.attr('string'),
    lastName: DS.attr('string'),
    account: DS.belongsTo('App.Account')
});

App.Account = DS.Model.extend({
    user: DS.belongsTo('App.User'),
    transactions: DS.hasMany('App.Transaction'),
    balance: function() {
      return this.get('transactions').getEach('amount').reduce(function(accum, item) {
          return accum + item;
      }, 0);
  }.property('transactions.@each.amount')
});

App.Transaction = DS.Model.extend({
    account: DS.belongsTo('App.Account'),
    amount: DS.attr('number'),
    description: DS.attr('string')
});

使用FixtureAdapter,帐户加载了hasMany事务,但不加载其belongsTo用户。

使用RESTAdapter,帐户可以很好地加载它的关系,但是当我尝试删除它时,它会给出错误太多的递归。

任何人都可以帮我解决这些问题吗?谢谢:))

1 个答案:

答案 0 :(得分:0)

我已经修复了你有FixtureAdapter的问题。您的帐户设备有一个 user_id 属性,而不只是 user ,其中id为值。

App.Account.FIXTURES = [
{
    id: 10001,
    user: 1,
    transactions: [1, 2, 3]
}
];

您可以在此处查看:http://jsfiddle.net/ianpetzer/pGeGw/

关于您使用RestAdapter遇到的递归问题......我可能错了......但我认为这是一个使用ember-data的错误。

请参阅以下链接:

https://github.com/emberjs/data/issues/671

Infinite Loop in Ember-Data clearRelationships?