0

たとえば、このようなスクリプトがあります。このスクリプトは、ページ番号で注釈が付けられた新しいdivを定義します。

<script type="text/x-handlebars" data-template-name="page-template">
    <div class = 'page'>
       The page is  <b>{{ App.pageView_1.pageNumber }}</b>
    <div>
</script>

対応するビュー:

App.pageView_1 = App.PageView.create({
    templateName: 'page-template',
    pageNumber: 1,
})

そして、それぞれが異なるpageNumberフィールドとビュー名を持つ新しいビューを動的に宣言したいので、次のようにします。

  App.pageView_2 = App.PageView.create({
      pageNumber: 2,
  });

  App.pageView_3 = App.PageView.create({
      pageNumber: 3,
  });

わかりやすくするために、templateNameフィールドは省略されていることに注意してください。

問題は、テンプレートブロック内のパラメータを{{App.pageView_2.pageNumber}}などに変更する必要があることです。

これをどのように行うことができるか考えていますか?

4

3 に答える 3

1

残り火の方法に少し近い:

{{#each App.pagesController}}
    {{#view App.PageView contextBinding="this"}}
        {{pageNumber}}
    {{/view}}
{{/each}}

そしてコントローラーの場合:

App.pagesController = Em.ArrayController.create({
    content: [{ pageNumber: 1 }, { pageNumber: 2 }, { pageNumber: 3 }]
});

ちなみに、templateNameビューが最初に定義されたときに設定することをお勧めします。

于 2012-09-27T20:57:56.160 に答える
0
{{view App.pageView pageNumber="2"}}
  {{pageNumber}}
{{/view}}

動作するはずですが、冗長に見えます。

于 2012-09-27T19:17:14.887 に答える
0

さて、最初に一般的なビューを宣言します

App.pageView = Ember.View.extend({
  templateName: "page_template"
  classNames: ['page']
})

page_template.handlebars

The page is {{view.pageNumber}}

これを宣言したので、次のことを実行したい場所で使用します。

{{view App.pageView pageNumber="1"}}

これはうまくいくはずです...

于 2012-09-28T05:36:15.290 に答える