链接到emberJS中的嵌套emberData对象

时间:2013-07-23 14:24:41

标签: ember.js ember-data

我正在使用emberData,我有以下模型

App.Product = DS.Model.extend({
  page_title: DS.attr('string'),
  image: DS.attr('string'),
  shop: DS.belongsTo('App.Shop', {embedded: true}),
  style: (function() {
    return "background-image:url('" + this.get("image") + "')";
  })
});

JSON数据如下所示:

{
  id: 1,
  image: 'imageUrl',
  shop: {
    id: 2,
    name: 'shopName'
  }
}

在我的模板中,我想链接到显示商店的页面

<img {{bindAttr src="image"}}>
{{#linkTo "shop" shop}}Store{{/linkTo}}

不幸的是,它链接到http://localhost:3000/#/shop/undefined

1 个答案:

答案 0 :(得分:1)

将模型嵌入belongsTo是没有意义的。中断更改文档表明您将对象嵌入父对象中:

来自BREAKING_CHANGES.md

  

嵌入父级

     

适配器可以通过嵌入ID来保存一对多关系(或   记录)在父对象中。在这种情况下,关系不是   被认为是公认的,直到老父母和新父母都有   承认这一变化。

     

在这种情况下,适配器应跟踪旧的父级和新的父级   父母,并确认一旦两者都有关系改变   确认。如果双方中的一方不存在(例如新的   由于将belongs-to归零,因此parent不存在   关系),适配器应该确认一次关系   另一方已经承认了。

你的装置必须是:

App.Product.FIXTURES = [{
  id: 1,
  image: "imageUrl",
  shop_id: 2
}];