我正在尝试使用ember.js在手柄模板中访问以下JSON的“name”属性,但似乎无法使其工作。
我将模型扩展如下:
App.Post = DS.Model.extend({
taxonomies : DS.attr();
});
我的JSON看起来像这样:
{"taxonomies":{
"positions":[
{
"name":"F",
}
],
"nhlteams":[
{
"name":"MTL",
}
]
}}
在模板中:
<script type="text/x-handlebars" data-template-name="posts">
<h1>Position Name: {{taxonomies.positions.0.name}}</h1>
<h1>Team Name: {{taxonomies.nhlteams.0.name}}</h1>
</script>
我也试过了:
<script type="text/x-handlebars" data-template-name="posts">
<h1>Position Name: {{taxonomies.positions.name}}</h1>
<h1>Team Name: {{taxonomies.nhlteams.name}}</h1>
</script>
任何想法我可能做错了什么?
答案 0 :(得分:0)
您需要在hasMany
和taxonimies
等之间建立positions
关系
App.Post = DS.Model.extend({
taxonomy: DS.belongsTo('taxonomy');
});
App.Taxonomy = DS.Model.extend({
positions : DS.hasMany('position');
});
App.Position = DS.Model.extend({
name: DS.attr()
});
然后你的json需要采用这种格式
{
post:{
taxonomy:1
},
taxonimies:[
{
id:1,
positions:[1]
}
],
positions:[
{
id:1,
name:"F"
}
]
}
要查看有关ember数据预期json的更多信息,请参阅https://github.com/emberjs/data/blob/master/TRANSITION.md