1

現在、ビューのリストをレンダリングしています:

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

しかし、各ビューに NewsItemController を挿入したいと思います。

を使用してみましrenderたが、これは単一のビューのみをサポートしているようで、例外があります:

キャッチされないエラー: ハンドルバー エラー: オブジェクト のプロパティ 'control' が見つかりませんでした。

代わりに使用についての簡単な言及を見つけました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 に答える