使用EmberJS 2.0列出多个项目

时间:2015-08-27 14:51:15

标签: ember.js ember-data

我有一个使用Fixture Data Adapter的基本应用程序,并且有一个带有一些基本种子数据的模型。

我在使用新的emberjs 2.0列出模型中的多个项目时遇到问题。对象被加载并在其中显示ember检查器,但没有循环并在浏览器中显示。我已经能够一次列出一个,但是当我切换到添加多个项目时,它是空白的。任何帮助都会很棒。

我已经更新了一些更多信息。这是我要列出的列表的路线。

<!--dashboard/route.js -->

import Ember from 'ember';

export default Ember.Route.extend({
model: function() {
return this.store.findAll('dashboard');
}
});

这是模板文件

 <!-- dashboard/template.hbs -->
<tbody>
     <tr>
        {{#each dashboards as |dashboard|}}
         <td>dashboards.status</td>
         <td>dashboards.orderid</td>
        {{/each}}
     </tr>
 </tbody>

我认为我的一切设置正确,但无法让它发挥作用。

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试一下模型钩子。它不需要是哈希。

model: function() {
    return this.store.findRecord('dashoard', 2);
}

如果您想要返回所有仪表板

model: function() {
    return this.store.findAll('dashoard');
}

然后在dashboard / template.hbs

    {{order-list dashboards=model}}

现在您可以访问组件中的所有仪表板

 {{#each dashboards as |dashboard|}}
    <td>dashboard.status</td>
    <td>dashboard.orderid</td>
 {{/each}}

答案 1 :(得分:0)

当您在模型中获取某些内容时,它会在相应的控制器上设置model属性。

因此,您需要执行此操作,而不是循环遍历dashboards

<tbody>
     <tr>
        {{#each model as |dashboard|}}
         <td>dashboards.status</td>
         <td>dashboards.orderid</td>
        {{/each}}
     </tr>
 </tbody>

另一种方法是使用setupController挂钩在控制器上设置dashboards属性。像这样:

setupController (controller, model) {
  this._super(...arguments)
  controller.set('dashboards', model)
}

这不是必要的;您基本上创建了一个指向dashboards的{​​{1}}别名。所以,现在,当你循环遍历model时,它会遍历dashboards

您可以在此处找到有关如何设置控制器的更多信息:http://guides.emberjs.com/v2.0.0/routing/setting-up-a-controller/