如何在ember.js中处理模板/路由中的多个模型

时间:2016-04-02 23:20:23

标签: javascript ember.js

我是Ember的新手,我想知道处理这种常见情况的最佳做法。

我想在索引页面内显示创建一些模型的表单,之后显示4个节点,其中包含有关该模型商店最后4个的小信息。

所以,我的第一个想法是:

app / index / template.hbs (我正在使用pod)

...
<div> 
   {{form-creator-component o=model}}}
</div>
<div>
   <h3>Last 4</h3>
   {{#each model2 as |element| }}
      {{litle-info o=element }}
   {{\each}}
</div>
.....

但是为了做到这一点,我需要在同一个模板(和路线)中有2个模型,这看起来很奇怪,我在文档和指南中都看不到。所以,我假设我正在以错误的方式做事:)

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您需要来自单个模型钩子的两组不同的Async数据,最好的方法是使用Ember.RSVP.hash

这将等待多个promise,然后解析为一个对象。

例如,如果您需要加载博客和评论,您的路线将如下所示:

import Ember from 'ember';

export default Ember.Route.extend({
  model() {
    return Ember.RSVP.hash({
      blogs: this.store.findAll(`blog`),
      comments: this.store.findAll(`comment`),
    });
  }
});

然后在您的模板中,您可以将此数据用作model.blogsmodel.comments