我有一个属于activity
的{{1}}模型。我有一个场景,我只有活动记录,我想要做的就是获取report
id,而不是获取整个记录。
report
显然,它知道id,但我无法弄清楚正确的咒语。有人有什么想法吗?
PS。看起来这在ember-data 2中发生了变化,因此之前的答案将无效。
activity.get('report_id') // undefined
activity.get('report.id') // the id! But after a full fetch
答案 0 :(得分:1)
我认为没有办法在发布渠道中执行此操作,但如果您使用Canary并启用ds-references
feature flag,则可以使用RFC 57中列出的功能。
答案 1 :(得分:0)
尽管锁定答案对于理解这种方向非常有帮助,但它并不是立即实用的。 RFC现在有一个简单解决方案的评论。
https://github.com/emberjs/rfcs/pull/57#issuecomment-121008369
//models/report-activity.js
export default DS.Model.extend({
report: belongsTo('report', {async: true}),
reportId: attr('string'), //set in serializer
});
//serializers/report-activiy.js
export default DS.ActiveModelSerializer.extend({
normalizeAttributes(typeClass, hash) {
if (hash.report_id) {
hash.reportId = hash.report_id;
}
return this._super(typeClass, hash);
}
});