我目前正在呈现一系列观点:
<ul>
{{#each newsItem in controller}}
{{view App.NewsItemView contentBinding="newsItem" class="news-item" }}
{{/each}}
</ul>
但我想在每个视图中注入一个NewsItemController。
我尝试过使用render
,但这似乎只支持单个视图,但却有例外:
未捕获错误:把手错误:找不到属性'control' 对象。
我已经发现了使用control
的简短提及,但似乎不再包含此内容。
那么如何渲染同一视图的多个版本,为每个版本注入一个单独的控制器?
答案 0 :(得分:1)
{{render}}
应该在当前的master中修复(如果你从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>