Ember.View
有一个名为.appendTo("#container")
的好方法,它允许我为视图指定容器div。但是,当我使用路由器和.connectOutlet method
时,我的视图实例是根据约定自动创建的,默认情况下会添加到页面 body 元素中。有没有办法配置视图的类定义,以便在创建时它将在我想要的#container
内。以下是我的观点:
Jimux.BuildsView = Em.View.extend({
templateName: 'builds',
appendTo: '#jimux-header', #this was just a guess and did not work. but does some propery like this exist for the view?
tagName: 'div',
listVisible: true,
...
提出这个问题的另一种方法是:如何告诉Ember路由器将视图附加到dom中的特定项目?默认情况下,路由器会将视图附加到正文。
这是路由器位:
# Connect builds controller to builds view
router.get('applicationController').connectOutlet("builds","builds", Jimux.buildsController)
为了澄清,我不想把我的整个Ember应用程序放在一个容器中。我的应用程序中有几个视图,大多数视图都直接在体内。但是有一些像这个问题中提到的那个,我想把它放在"#application-header"
div中。
答案 0 :(得分:1)
您可以指定应用程序对象的根元素。
window.App = Ember.Application.create({
rootElement: '#ember-app'
});
编辑:
重新阅读你的问题之后,我认为你应该研究一下这个名字,所以你可以这样做:
<div id="application-header">
{{outlet builds}}
</div>
{{outlet}}
答案 1 :(得分:1)
<div id="jimux-header">
{{view Jimux.BuildsView}}
</div>
通过这种方式,我们可以随时随地使用Jimux.BuildsView。你不得不说,恩白之美......
答案 2 :(得分:0)
只需在应用程序对象中添加rootElement
即可。
var App = Ember.Application.create({
rootElement: '#container'
});