查找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。

链接地址: http://www.djcxy.com/p/65579.html

上一篇: Looking up values on a belongsTo relationship

下一篇: Ember.js Data Conflict Resolution / Failing on Conflict