如何在控制器中导入把手模板并将其放在另一个把手模板中

时间:2017-02-26 13:18:50

标签: javascript ember.js handlebars.js

如果这个问题很愚蠢,我很抱歉。我已经开始使用ember js在前端工作,我很喜欢它。 我被困在一个我想在ember js控制器中导入把手模板并将它附加到div的位置。

那么如何在控制器中导入把手模板并填充它并将其放在另一个把手模板中。

这是我的控制器:

import Ember from 'ember';

export default Ember.Controller.extend({

    actions: {
    search: function() {
            alert("done");
          }
    }

});

这里是把手模板:

<table class="table table-striped">
   <thead>
   <tr>
       <th>Name</th>
       <th>Mark</th>
       <th>Subject</th>
   </tr>
   </thead>
   <tbody>
   {{#each students}}
   <tr>
       <td>{{ this.name }}</td>
       <td>{{ this.mark }}</td>
       <td>{{ this.subject }}</td>
   </tr>
   {{/each}}
   </tbody>
 </table>

我已经在github上发布了代码,网址是:https://github.com/focode/emberjs2/tree/master/app

2 个答案:

答案 0 :(得分:1)

您不会从控制器填充模板。您可以直接在模板中使用它。

为此你基本上有两种方法。首选方法是使用组件。但请注意,这将为您提供一个新的,孤立的上下文。另一种方法是使用partial helper,它将在当前上下文中呈现模板。

答案 1 :(得分:0)

我的建议是再次阅读官方教程。在本教程中,您将看到很少使用控制器

使用ember-cli生成路由器时,ember g route routeName在模板内名为routeName.hbs的模板文件夹下生成对应的模板,有一个名为{{outlet}}的标记,这是嵌套模板的位置。

例如,使用ember g route routeName/nestedOne生成嵌套路由,在nestedOne.hbs内为您提供另一个名为template/routeName/nestedOne.hbs的模板,该模板实际上位于私有生成模板{{outlet}}内{ {1}}。

Ember使用约定优于配置,因此您无需手动导入模板。

推荐一本涵盖了很多内容的初学者教程。它是免费的并且更新(最后更新是在2016年末)。

https://leanpub.com/ember-cli-101