2

我有以下json数据:

{
    "type": "type1",
    "name": "Name1",
    "properties": {
        "age": 23,
        "address": "Sample"
    }
}

我用 建模Ember Data,如下:

App.Node = DS.Model.extend({
    type: DS.attr('string'),
    name: DS.attr('string'),
    properties: DS.belongsTo('App.NodeProperties')
});

App.NodeProperties = DS.Model.extend({
    age: DS.attr('number'),
    address: DS.attr('string')
});

properties有没有比使用 a更好的方法来模拟嵌套DS.belongsTo?我将如何访问我的模板中的年龄。我目前正在做

{{node.properties.age}}

但我不确定这是否有效。

4

1 回答 1

4

有没有比使用 DS.belongsTo 更好的方法来建模嵌套属性?

考虑到您的用例,DS.belongsTo 是一个不错的选择。

如何访问模板中的年龄?

{{node.properties.age}}是正确的,假设这{{node}}是一个有效的参考

但我不确定这是否有效。

您还需要采取更多步骤才能使其正常工作。首先,将 App.Node 的映射添加到 rest 适配器,指定将嵌入属性:

DS.RESTAdapter.map('App.Node', {
  properties: { embedded: 'always' }
};

然后更新 NodeProperties 以包含关系:

App.NodeProperties = DS.Model.extend({
  age: DS.attr('number'),
  address: DS.attr('string'),
  node: DS.belongsTo('App.Node')
});

有关更多信息,请查看以下答案:

于 2013-04-04T12:23:02.167 回答