0

我在我的一个模板中使用 {{render}} 车把助手来(尝试)在同一页面上呈现另一条路线的模板。例如:

<script type="text/x-handlebars" data-template-name="index">

{{#each model}}
  {{name}}<br />
{{/each}}

{{render "people"}}

</script>

<script type="text/x-handlebars" data-template-name="people">

{{#each controller}}
  {{name}}<br />
{{/each}}

</script>

在我的人员控制器中,我照常设置模型:

App.PeopleRoute = Ember.Route.extend({
  model: function() {
    return App.People.find();
  }
});

如果我直接访问我的人员路线 (/people),我会得到一个人员列表。在我的主模板中,人员模板被渲染到另一个模板中,渲染助手不调用 PeopleRoute,所以模型永远不会设置(据我了解)。

有没有办法将 PeopleController 上的 content 属性设置为人员对象列表?

我无法对此进行任何更改:

App.PeopleController = Ember.ArrayController.extend({
  content: function() {
    return App.People.find();
  }
});
4

1 回答 1

0

渲染助手不会进行任何转换,因此不会调用模型挂钩。它只是使用同名控制器在当前上下文中渲染模板...您可以将可选模型传递给绑定到渲染助手同名控制器的内容... Ember API

  <script type="text/x-handlebars" data-template-name="index">

   {{#each model}}
    {{name}}<br />
   {{/each}}

    {{render "people" model}} 

   </script>

样品小提琴在这里

于 2013-06-14T14:24:19.337 回答