【发布时间】:2015-06-10 23:36:30
【问题描述】:
我正在尝试检索给定帐户的所有布局。
/app/models/account.js
import DS from 'ember-data';
export default DS.Model.extend({
companyName: DS.attr('string'),
layouts: DS.hasMany('layout')
});
/app/models/layout.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
account: DS.belongsTo('account', { async: true })
});
/app/routes/layouts.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return Ember.RSVP.hash({
layouts: this.store.filter('layout', { account_id: 1 }, function(layout) {
console.log(layout.get('account').content.id);
return layout.get('account').content.id === 1;
})
});
}
});
console.log 行正在输出我期望的 ID (1)。在 Ember 检查器中,我可以看到 5 个布局模型,在“属于”下,我可以看到:account : <DS.PromiseObject:ember960>。点击它会弹出content : <batmics@model:account::ember600:1>,然后点击它会弹出属性,包括正确的 ID。
但是在我的模板中layouts 是空的...我不知道为什么。
顺便说一句,layouts: this.store.find('layout', { account_id: 1 }) 有效,但我需要它来使用过滤器,以便它成为一个活动数组。
【问题讨论】:
-
什么不起作用?不清楚你的问题是什么..
-
对不起,我已经澄清了问题
-
我想知道您的问题是否可能是因为
account关系是async并且可能在函数运行时未加载..但这与事实不符控制台记录了正确的信息。如果您将过滤器更改为简单地返回true,删除您所做的检查,这会改变结果吗?你得到了layouts 的完整列表吗? -
我确实得到了完整的布局列表
-
哦..我想我知道它是什么..我会发布答案
标签: ember.js filter belongs-to