我有以下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
而不是使用DS.belongsTo
?
我如何访问模板中的年龄。我正在做
{{node.properties.age}}
但我不确定这是否有效。
答案 0 :(得分:4)
根据您的使用案例,DS.belongsTo是一个不错的选择。有没有比使用DS.belongsTo更好的方法来建模嵌套属性?
假设我如何访问模板中的年龄?
{{node.properties.age}}
是有效参考, {{node}}
是对的
但我不确定这是否有效。
为了实现这一目标,您还需要采取一些步骤。首先,将App.Node的映射添加到其余适配器,指定将嵌入属性:
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')
});
有关详细信息,请查看以下答案: