[英]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.