我使用FIXTURES
创建了ember-model
,我尝试在模板上访问它,但如果我使用{{model.name}}
则没有显示任何结果。它与each
助手一起工作正常。
我希望在不使用任何{{model.name}}
帮助程序的情况下访问each
等模型的单个节点。
我的型号代码:
Astcart.Home.FIXTURES=[
{
"id": "1",
"logo_url": "img/logo.jpg",
"name": "gau",
"list": [
{
"id": "1",
"name": "amit"
},
{
"id": "2",
"name": "amit1"
}
]
}
];
我的路由器代码:
Astcart.HomeRoute = Ember.Route.extend({
model: function() {
return Astcart.Home.find();
}
});
我的模板:
<script type="text/x-handlebars" data-template-name="home">
{{model.name}}
<ul>
{{#each item in model}}
<img {{bindAttr src="item.logo_url"}}></img>
<li>{{item.name}}</li>
{{#each item in item.list}}
<li>{{item.name}}</li>
{{/each}}
{{/each}}
</ul>
</script>
我已更新了我的代码here
答案 0 :(得分:1)
首先,您需要将模板名称更改为index
或路径更改为Astcart.ApplicationRoute
,因为模板名称和路径名称必须匹配。
目前的配置:
路线
Astcart.IndexRoute
模板
<script type="text/x-handlebars" data-template-name="application">
不起作用。
没有参数的find()
会执行find all data
,这将始终返回一个数组。
如果您想要单个数据,可以执行以下选项之一:
1-在find方法中传递id,但您需要知道id:
Astcart.Home.find(1);
这将返回单个对象,然后您可以使用{{model.name}}
或{{name}}
(因为模板的上下文是model
),而没有each
视图助手。
2-获取数组的第一个对象:
{{#with model.firstObject as item}}
<img {{bindAttr src="item.logo_url"}}></img>
{{item.name}}
{{/with}}
我希望它有所帮助