我设置了一个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,帐户加载它的关系很好,但当我试图删除它时,它会给错误太多递归。
有人能帮我解决这些问题吗?感谢:)
我已经修复了您使用FixtureAdapter的问题。您的Account fixtures有一个user_id属性,而不是只有以id为值的user。
App.Account.FIXTURES = [
{
id: 10001,
user: 1,
transactions: [1, 2, 3]
}
];
你可以在这里看到:http://jsfiddle.net/ianpetzer/pGeGw/
关于您在使用RestAdapter时遇到的递归问题。。。我很可能错了。。。但我认为这是ember数据的错误。
请参阅以下链接:
https://github.com/emberjs/data/issues/671
Ember数据清除关系中的无限循环?