【问题标题】:Render Multiple View/Controller Pairs渲染多个视图/控制器对
【发布时间】:2013-03-29 11:17:26
【问题描述】:

我目前正在渲染视图列表:

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

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

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

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

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

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

【问题讨论】:

    标签: javascript list view controller ember.js


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      相关资源
      最近更新 更多