如何在手柄视图中迭代计算的Ember数组中的每个项目

时间:2012-04-04 13:58:50

标签: ember.js handlebars.js

我有一个控制器,它是一个ArrayProxy并包含一些计算数组。

在coffeescript中,我的控制器看起来像这样:

MyApp.parentController = Ember.ArrayProxy.create
  content: []
  mothers: (->
    mothers = (person for person in @get("content") when person.sex == 0)
  ).property("content")
  fathers: (->
    fathers = (person for person in @get("content") when person.sex == 1)
  ).property("content")

这很好用,当我从命令行请求'MyApp.parentController.get(“mothers”)'时,我会返回预期的数组。

现在我想在我的文档中显示该集,所以我想迭代母亲名单:

<div id="parent-mothers-pool">
  {{#each MyApp.parentController.mothers}}
     {{#view MyApp.ParentView contentBinding="this"}}{{/view}}
  {{/each}}
</div>

这不起作用,实际上完全挂起了应用程序,永远旋转,甚至没有向控制台打印任何错误。

离开#each车把的“.mother”会正确地显示所有父母,正如您所期望的那样。但把它放在borks上。

如何迭代此计算数组?

1 个答案:

答案 0 :(得分:0)

您应该在ParentMothersPool视图中定义一个绑定,指向控制器的mothers属性:

MyApp.EnclosingView = Ember.View.extend
    mothersBinding: 'MyApp.parentController.mothers'

然后在模板中:

{{#each mothers}}
    ...