尝试在emberjs中渲染两个模板视图时,只渲染后一个

时间:2013-01-09 06:33:38

标签: ember.js handlebars.js

我是emberjs的新手,我试图在标记中使用两个不同的脚本标记渲染两个视图,但只有后一个会被渲染。

HTML:

<script type="text/x-handlebars">
  {{view Ember.Select
         contentBinding="App.peopleController"
         selectionBinding="App.selectedPersonController.person"
         optionLabelPath="content.fullName"
         optionValuePath="content.id"}}

  <p>Selected: {{App.selectedPersonController.person.fullName}}
    (ID: {{App.selectedPersonController.person.id}})</p>
</script>
<script type="text/x-handlebars">
  {{#view Ember.Checkbox}}
    Check me!
  {{/view}}
</script>

我也在这里创建了小提琴:jsfiddle

在这种情况下,我只能看到复选框,但看不到下拉选择视图。

1 个答案:

答案 0 :(得分:1)

您必须为模板命名,没有名称的模板被视为ApplicationView的模板,我想如果您有几个没有名称的模板,则会选择最后一个模板。所以你必须这样做:

<script type="text/x-handlebars" data-template-name="check-box">
   {{#view Ember.Checkbox}}
     Check me!
   {{/view}}
</script>

这是一个示例http://jsfiddle.net/zgLCr/419/ - 在另一个视图中包装Ember.Checkbox没有多大意义,但它显示了如何命名和呈现视图,尽管您可以在ApplicationView的模板中放置复选框:

<script type="text/x-handlebars">
   {{view Ember.Select
     contentBinding="App.peopleController"
     selectionBinding="App.selectedPersonController.person"
     optionLabelPath="content.fullName"
     optionValuePath="content.id"}}

   <p>Selected: {{App.selectedPersonController.person.fullName}}
      (ID: {{App.selectedPersonController.person.id}})</p>

   {{#view Ember.Checkbox}}
      Check me!
   {{/view}}
</script>