0

我正在使用 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

4

1 回答 1

1

嵌入它的模型没有意义belongsTo。重大更改文档指出您将对象嵌入到父对象中:

来自BREAKING_CHANGES.md

嵌入父级

适配器可以通过在父对象中嵌入 ID(或记录)来保存一对多关系。在这种情况下,直到旧父级和新父级都确认更改后,才认为关系已确认。

在这种情况下,适配器应该跟踪旧父级和新父级,并在两者都确认后确认关系更改。如果两方中的一方不存在(例如,新的父节点由于归属关系无效而不存在),则适配器应在另一方确认后确认该关系。

您的灯具必须是:

App.Product.FIXTURES = [{
  id: 1,
  image: "imageUrl",
  shop_id: 2
}];
于 2013-07-23T16:10:41.513 回答