2013-03-29 126 views
1

我目前呈现的视图列表:渲染多个视图/控制器双

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

但我想注入NewsItemController到每个视图。

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

Uncaught Error: Handlebars error: Could not find property 'control' on object .

我发现使用control,而不是简单地提到,但是这似乎不再被包括在内。

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

回答

1

{{render}}应该在当前的主版本(如果您从Github构建它)中修复。您应该能够多次使用它,如果你通过一个模型:

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

{{control}}仍然存在,只是隐藏在背后的旗(因为它仍处于试验阶段)。要使用它,您需要在包括ember.js文件之前执行:ENV.EXPERIMENTAL_CONTROL_HELPER = true。如果你可以避免使用它,那会更好。

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

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

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

<ul> 
    {{each controller itemController="newsItem" itemViewClass="App.NewsItemView"}} 
</ul>