Ember.js 灰烬渲染到指定出口内的出口
给定这些模板Ember.js 灰烬渲染到指定出口内的出口,ember.js,outlet,Ember.js,Outlet,给定这些模板 <script type="text/x-handlebars"> <h3>Application outlet:</h3> <div class="outlet"> {{outlet}} <div> <h3><code>'base'</code> outlet:</h3> <div class="outlet base-outlet"&g
<script type="text/x-handlebars">
<h3>Application outlet:</h3>
<div class="outlet">
{{outlet}}
<div>
<h3><code>'base'</code> outlet:</h3>
<div class="outlet base-outlet">
{{outlet 'base'}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="index">
<h1>I am the application index, I should be in the application outlet.</h1>
</script>
<script type="text/x-handlebars" data-template-name="foo">
<p>I am foo, I have my own outlet here:</p>
<h3>Foo Outlet:</h3>
<div class="outlet foo-outlet">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="foo/index">
<p>I am foo index, I should be inside <code>#foo-outlet</code> (green border)</p>
</script>
这些路线:
App.Router.map(function() {
this.resource('foo', function() {
this.resource('bar');
});
});
App.IndexRoute = Ember.Route.extend({
afterModel: function() {
this.transitionTo('foo.index');
}
});
App.FooRoute = Ember.Route.extend({
renderTemplate: function() {
this.render({into: 'application', outlet: 'base'});
}
});
我希望foo/index
模板能够在foo
模板中包含的{{outlet}}
中呈现,但是它被呈现到应用程序outlet中,这里有一个实例:
注意,如果我在renderTemplate
中调用this.\u super()
,我会在正确的位置得到foo/index
排序,但是foo
模板会呈现两次
更新:我试图实现以下目标:
'sidebar'
因此,在上面的示例中,
foo
路由应该将其包装器呈现到'base'
出口中,然后其子路由的内容(foo/index
在示例中)应该呈现在该包装器内的出口中(在示例中具有类foo outlet
).我认为如果您使用的是数据模板名称
属性,那么您必须明确告知负责使用此模板的视图(模板名称
)。您可能只想在模板定义中使用id
属性,使余烬命名约定自动生效。我也会调用带有参数的super
,但不知道在这种情况下是否会发生任何变化。为自己准备一个工作示例应用程序,以遵循设计模式,以便顺利启动,从一开始就使用ember cli;)祝你好运进行这些更改并没有任何区别,我仍然可以让它几乎正常工作,但如果我将调用添加到super,可能这更像您实际想要的,并让您了解事物如何协同工作:如果这没有帮助,我不理解这个问题;)@Preexo不,那没有帮助,我已经在我的问题中添加了一个更新,试图澄清。最让我困惑的是,为什么当我在renderTemplate
中调用\u super()
时,我在正确的位置得到了foo/index
渲染,但得到了两次foo
模板渲染。我假设对\u super()
的调用正在对应用程序未命名的outlet进行正常渲染,但这并不能解释为什么这样做会触发foo/index
按我的需要渲染到outlet。