1

我目前正在呈现视图列表:

  <ul>
    {{#each newsItem in controller}}
      {{view App.NewsItemView contentBinding="newsItem" class="news-item" }}
    {{/each}}
  </ul>

但我想在每个视图中注入一个 NewsItemController。

我试过使用render,但这似乎只支持一个视图,给出了例外:

未捕获的错误:车把错误:在对象上找不到属性“控件”。

我发现了一个关于使用的简短提及control,但这似乎不再包括在内。

那么如何渲染同一个视图的多个版本,为每个视图注入一个单独的控制器呢?

4

1 回答 1

1

{{render}}应该在当前主服务器中修复(如果你从 Github 构建它)。如果你传递一个模型,你应该可以多次使用它:

<ul>
 {{#each controller}}
   {{render "newsItem" this}}
 {{/each}}
</ul>

{{control}}仍然存在但隐藏在标志后面(因为它仍然是实验性的)。要使用它,您需要执行 :ENV.EXPERIMENTAL_CONTROL_HELPER = true在包含ember.js文件之前。如果你能避免使用它,那就更好了。

但是我认为最简单的方法是使用itemController

<ul>
  {{#each controller itemController="newsItem"}}
    {{view App.NewsItemView class="news-item" }}
  {{/each}}
</ul>

我认为您可以将它们组合起来以使其更简单(我还没有尝试过):

<ul>
  {{each controller itemController="newsItem" itemViewClass="App.NewsItemView"}}
</ul>
于 2013-03-29T12:10:23.423 回答