余烬AppKit和嵌入对象使用余烬数据



我正在尝试创建一个使用Ember AppKit和ES6语法嵌入数据的模型,但我有点困惑。

我发现这篇文章解释了如何将数据嵌入到模型中:https://github.com/emberjs/data/blob/master/TRANSITION.md rest-adapter-and-serializer-configuration

但是我不知道如何将这个应用到我的范围。我应该在适配器中添加"map"来指定我的属性将被嵌入,但我不知道该怎么做。

这是我的:

适配器/item.js

export default DS.RESTAdapter.extend({
   namespace: 'path/to/api/json'
});

如何在这里添加地图??

模型/item.js

var attr = DS.attr,
    belongsTo = DS.belongsTo;
export default DS.Model.extend({
    name: attr('string')
    width: belongsTo('valueUnit'),
    height: belongsTo('valueUnit'),
    weight: belongsTo('valueUnit')
});

我认为这里应该是这样的:

export default DS.Model.extend({
    name: attr('string')
    width: belongsTo('valueUnit', {embedded: 'always'}),
    height: belongsTo('valueUnit', {embedded: 'always'}),
    weight: belongsTo('valueUnit', {embedded: 'always'})
});

模型/value-unit.js

var attr = DS.attr;
export default DS.Model.extend({
    value: attr('number')
    unit: attr('string')
});

这是我从服务器得到的结果:

{
  "items": [
    {
      "id": "123456789",
      "width": {
        "value": 150,
        "unit": "m"
      },
      "height": {
        "value": 5.3,
        "unit": "ft"
      },
      "weight": {
        "value": 12,
        "unit": "lb"
      }
    }
  ]
}

谢谢

您必须为项目模型编写序列化程序。下面是关于如何编写序列化器的指南。

(在您的示例中,您正在从items数组中提取数据。所以实现extractArray函数。)

希望有帮助!

相关内容

  • 没有找到相关文章

最新更新