0

我已经设置了一个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,Account 会加载它的 hasMany 事务,但不会加载它的 belongsTo 用户。

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

谁能帮我解决这些问题?谢谢 :)

4

1 回答 1

0

我已经解决了您使用 FixtureAdapter 的问题。您的 Account 装置有一个user_id属性,而不仅仅是以 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

Ember-Data clearRelationships 中的无限循环?

于 2013-02-05T22:05:32.720 回答