2013-04-04 178 views
2

我有以下json數據:建模嵌套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

如果您有一個定義良好的屬性模型belongsTo是要走的路。 – mbogh 2013-04-04 11:19:16

+0

那麼'{{node.properties.age}}'是訪問它的正確方法嗎? – dangonfast 2013-04-04 11:40:43

回答

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') 
}); 

欲瞭解更多信息,請查看這些答案: