我正在为会计部门构建仪表板应用程序。
用户将选择一个月份,并查看该月份符合特定条件的所有公司。路线将是
/:month_id a summary page
/:month_id/companies more details about each company
/:month_id/companies/:company_id all details about a single company
理想情况下,我会有一个month
模型hasMany
company
。唯一的问题是,公司将在几个月后出现。
如果我错了,请纠正我,但这是否意味着如果一家公司已经在商店中,当请求新月份时,它将从商店而不是服务器中获取该公司的数据?每个月的数据都会不同,所以这对我不起作用。
我想在这个应用程序中,每个公司的 id 实际上是它们正常的整数 id 加上所选月份。所以解决这个问题的一种方法是给每个公司一个像'15-Mar-2013'
.
或者,我可以只通过原始数据传递每个月的companies
数据,并对普通数组进行转换。但是,这样做的问题是我必须计算公司的汇总(除了整个月),将这两件事分开会非常好。如果我有一个完全独立的 Company 模型,我可以在模型中进入城镇:
App.Company = DS.Model.extend({
month: DS.belongsTo('App.Month'),
name: DS.attr('string'),
contracts: DS.hasMany('App.Contract'),
totalRevenue: function() {
return this.get('contracts')
.filterProperty('type', 'newSetup')
.getEach('feeChange').reduce(function(accum, item) {
return accum + item;
}, 0);
}.property('contracts.@each.feeChange'),
...additional aggregation functions
});
你怎么看?