簡體   English   中英

使用Ember和Handlebars,如何在模板塊內動態聲明參數?

[英]Using Ember and Handlebars, how do you dynamically declare parameter within template block?

例如,我有一個像這樣的腳本,它定義了一個新的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}},依此類推。

任何想法如何做到這一點?

更接近余燼方式:

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

對於控制器:

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

順便說一句,您可能希望在最初定義視圖時設置templateName

{{view App.pageView pageNumber="2"}}
  {{pageNumber}}
{{/view}}

應該工作,但似乎多余。

好吧,首先聲明一個通用視圖

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

page_template.handlebars

The page is {{view.pageNumber}}

現在,您已經聲明了這一點,可以在需要執行以下操作的任何地方使用它:

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

我猜這應該工作...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM