如何将控制器的内容属性设置为没有相应路由的模型数组?

时间:2013-06-14 13:18:51

标签: javascript ember.js

我在我的一个模板中使用{{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();
  }
});

如果我直接访问我的人员路线(/人),我会得到一份人员名单。在我的主模板中,人员模板被渲染到另一个模板中,渲染助手不会调用PeopleRoute,因此模型永远不会被设置(据我所知)。

有没有办法让PeopleController上的内容属性设置为人物对象列表?

我无法使用任何变体:

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

1 个答案:

答案 0 :(得分:0)

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

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

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

    {{render "people" model}} 

   </script>

示例小提琴here