查找belongsTo关系的值
我有一个系统,我希望用户为项目添加标志(hashtags)。 这是我的模特:
Social.Item = DS.Model.extend({
source: DS.belongsTo ('source'),
url: DS.attr (),
post_timestamp: DS.attr(),
summary: DS.attr(),
item_flags: DS.hasMany('item_flag', {async: true})
});
Social.Flag = DS.Model.extend({
kind: DS.attr(),
name: DS.attr(),
item_flags: DS.hasMany('item_flag', {async: true})
});
Social.ItemFlag = DS.Model.extend({
item: DS.belongsTo('item', {async: true}),
user: DS.belongsTo('user', {async: true}),
flag: DS.belongsTo('flag', {async: true}),
});
以下是相关的句柄代码:
{{#each item in site.sorted_items itemController="item"}}
{{{item.summary}}}
{{#each item_flag in item.item_flags}}{{item_flag.flag}}*FF*{{/each}}
{{/each}}
系统为每个项目输出一些FF标签 - 数据库中肯定存在item_flag元素,并且我可以看到REST端点上的调用 - 系统正在从数据库请求item_flags。 它看起来像belongsTo关系另一边的对象在这里不可用。 我试图扩展ItemFlag模型以包含此代码:
flag_string: function() {
return this.get('flag').then(function (data) {return data.get('name')});
}.property('flag')
但是这只是抛出NPE - ItemFlag模型上的this.get('flag')返回null。 似乎有一些关于适配器上定义的“嵌入:总是”的提及,但是(a)是来自预测数据测试版的日子,以及(b)它没有帮助(另外,我的记录不是嵌入式)。
在这里的一般情况下,我想要做的是找出如何查看模型的父模型,如数据库中的关系所定义的。
事实证明,我对新的余烬数据序列化器的期望产生了反感。 我的item_flag序列化程序在看起来应该是{id: 1, flag:1, user:1}
时看起来像{id: 1, flag_id:1, user_id:1}
json响应。 这导致(显然),没有适当的参数创建item_flag。
上一篇: Looking up values on a belongsTo relationship
下一篇: Ember.js Data Conflict Resolution / Failing on Conflict