2

我是 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

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

4

1 回答 1

1

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

<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>
于 2013-01-09T10:18:44.847 回答