Javascript Ember.js show在模板中有许多数据,其中包含一个或多个结果
在无休止的尝试之后,我希望有人能从我的尝试中找到线索。我知道关于stackoverflow的这个特定主题有很多问题。不过,我想我不会问同样的问题。因为我没有找到我的具体挑战的答案 这是我的路由器:Javascript Ember.js show在模板中有许多数据,其中包含一个或多个结果,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,在无休止的尝试之后,我希望有人能从我的尝试中找到线索。我知道关于stackoverflow的这个特定主题有很多问题。不过,我想我不会问同样的问题。因为我没有找到我的具体挑战的答案 这是我的路由器: App.Router.map(function () { this.resource('article', {path: '/article/:id'}); this.resource('article.new', {path: "/article/new"}); }); 路线 Ap
App.Router.map(function () {
this.resource('article', {path: '/article/:id'});
this.resource('article.new', {path: "/article/new"});
});
路线
App.ArticleRoute = Ember.Route.extend({
model: function (params) {
return this.store.find('article', params.id);
}
});
App.ArticleNewRoute = Ember.Route.extend({
renderTemplate: function () {
this.render('article', {
controller: 'article.new'
});
},
model: function () {
return this.store.createRecord('article');
}
});
模型
App.Category = DS.Model.extend({
name: DS.attr('string'),
image: DS.attr('string'),
categoryRelation: DS.belongsTo('category')
});
App.Article = DS.Model.extend({
name: DS.attr('string'),
category: DS.hasMany('category')
)};
从服务器返回的JSON:
{
"articles":[
{
"id":1,
"name":"Car 1",
"category":[1,2],
{
"id":2,
"name":"Car 2",
"category":2,
],
"categorys":[ // note the added 's' when returning multiple items as per EmberJS convention
{
"id":1,
"name":"Oldtimers"
},
{
"id":2,
"name":"Classic"
}
],
}
现在是问题,因为我在我的模板中尝试了以下内容:
<script type="text/x-handlebars" data-template-name="article">
<div>
{{#each category in model}}
{{category.name}}<br>
{{name}}<br>
{{/each}}
</div>
</script>
{{#模型中的每个类别}
{{category.name}}
{{name}}
{{/每个}}
我在模板中尝试了多种变体,这是我最后一个似乎正确的代码。注意:对于id为2的文章,如果只有一篇文章,模板也必须呈现
编辑:我为你们翻译了一些代码。如果有拼写错误,它们可能不在原始代码中。您的文章模板将只收到一篇文章,因此此
{{{{模型中的每个类别}}
不起作用,您需要使用{{模型中的每个类别.category}
:
<div>
Article {{name}}<br/>
{{#each category in model.category}}
Category {{category.name}}<br/>
{{/each}}
</div>
第{{name}}条
{{{#model.category中的每个类别}
类别{Category.name}}
{{/每个}}
这是一个在行动中的摆弄嗨,马尔西奥,非常感谢你的回答!但是,这对单个项目不起作用。参见id为2的文章。是否需要从服务器返回单个项目作为数组?我已编辑了您的小提琴以查看错误:
uncaughttypeerror:object2没有方法“everyProperty”
:很明显,它希望每条语句都有一个数组。但是,是否可以更改每个行为以使其也显示单个项目?是的,将“类别”:2
更改为“类别”:[2]
将解决问题,这是解决问题的简单方法,除非您无法控制服务器端。这个答案的帮助无法用言语表达。事实上,我对这个问题有多简单感到心烦意乱。。。