Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember.js show在模板中有许多数据,其中包含一个或多个结果_Javascript_Ember.js_Ember Data - Fatal编程技术网

Javascript Ember.js show在模板中有许多数据,其中包含一个或多个结果

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

在无休止的尝试之后,我希望有人能从我的尝试中找到线索。我知道关于stackoverflow的这个特定主题有很多问题。不过,我想我不会问同样的问题。因为我没有找到我的具体挑战的答案

这是我的路由器

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]
将解决问题,这是解决问题的简单方法,除非您无法控制服务器端。这个答案的帮助无法用言语表达。事实上,我对这个问题有多简单感到心烦意乱。。。