首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ember和Handlebar,如何在模板块中动态声明参数?

使用Ember和Handlebar,如何在模板块中动态声明参数?
EN

Stack Overflow用户
提问于 2012-09-28 03:04:02
回答 2查看 285关注 0票数 0

例如,我有一个这样的脚本,它定义了一个新的div,并用页码进行了注释

代码语言:javascript
复制
<script type="text/x-handlebars" data-template-name="page-template">
    <div class = 'page'>
       The page is  <b>{{ App.pageView_1.pageNumber }}</b>
    <div>
</script>

对应的视图:

代码语言:javascript
复制
App.pageView_1 = App.PageView.create({
    templateName: 'page-template',
    pageNumber: 1,
})

我想动态声明新视图,每个视图都有不同的pageNumber字段和视图名称,所以:

代码语言:javascript
复制
  App.pageView_2 = App.PageView.create({
      pageNumber: 2,
  });

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

注为清楚起见,已省略了templateName字段。

问题是模板块中的参数必须更改为{{ App.pageView_2.pageNumber }},依此类推。

你知道这是怎么做的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-28 04:57:56

更接近ember的方式:

代码语言:javascript
复制
{{#each App.pagesController}}
    {{#view App.PageView contextBinding="this"}}
        {{pageNumber}}
    {{/view}}
{{/each}}

而对于控制器:

代码语言:javascript
复制
App.pagesController = Em.ArrayController.create({
    content: [{ pageNumber: 1 }, { pageNumber: 2 }, { pageNumber: 3 }]
});

顺便说一句,您可能希望在最初定义视图时设置templateName

票数 1
EN

Stack Overflow用户

发布于 2012-09-28 03:17:15

代码语言:javascript
复制
{{view App.pageView pageNumber="2"}}
  {{pageNumber}}
{{/view}}

应该是可行的,但似乎是多余的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12628401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档