0

Ember.js を学習しようとしている問題を示すために、 jsFiddleをセットアップしました。

私はこれらのモデルを持っています:

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 トランザクションをロードしますが、begsTo ユーザーはロードしません。

アカウントは RESTAdapter を使用して関係を正常に読み込みますが、アカウントを削除しようとすると再帰が多すぎるというエラーが表示されます。

誰でもこれらの問題を解決するのを手伝ってもらえますか? ありがとう :)

4

1 に答える 1

0

FixtureAdapter の問題を修正しました。Account フィクスチャには、値として id を持つuserだけでなく、 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

Ember-Data clearRelationships の無限ループ?

于 2013-02-05T22:05:32.720 に答える