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

更接近 ember 方式:

{{#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

好吧,首先声明一个通用视图

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 回答
0
{{view App.pageView pageNumber="2"}}
  {{pageNumber}}
{{/view}}

应该可以工作,但似乎是多余的。

于 2012-09-27T19:17:14.887 回答