我尝试在我的网络应用程序中将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>
...
答案 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>