EmberJS pre2将把手模板放在错误的地方

时间:2012-11-10 17:53:57

标签: ember.js

我尝试在我的网络应用程序中将EmberJS从pre1更新为pre2,但我注意到它将所有车把模板作为最后的车身元素,有时根本不存在。

我{* 3}}使用了入门套件,在模板前后放置div的简单修改,以显示模板将被添加到错误的位置。 使用pre1运行同一页面,一切正常。

的index.html

...

<body>
  <div>this is before the template</div>
  <script type="text/x-handlebars" data-template-name="application">
    <h1>Hello from Ember.js</h1>
  </script>
  <div>this is after the template</div>

...

1 个答案:

答案 0 :(得分:5)

text / x-handlebars脚本标签定义了Handlebar模板,它与将其放置在页面中的位置无关(在头部,身体的任何位置)。

在上面的代码中,您可以为ApplicationView定义模板。由于您使用路由器,因此ember会自动创建ApplicationView并将附加添加到您的Ember应用的根元素中。默认情况下,rootElement是正文:

App.ApplicationView.create().appendTo(rootElement) // default rootElement = 'body'

并且appendTo方法使用jQuery appendTo

this.$().appendTo(target)

因此,如果您想控制插入applicationView的位置,您需要在App实例中设置rootElement,如下所示:

  window.App = Ember.Application.create({
    rootElement: '#insert_my_app_here'
  });

...

  <body>
    <div>this is before the template</div>
    <script type="text/x-handlebars" data-template-name="application">
      <h1>Hello from Ember.js</h1>
    </script>
    <div id="insert_my_app_here"></div>
    <div>this is after the template</div>
  </body>