我有一个带有主页的余烬应用,其中显示了两个链接:“登录”和“请求邀请”。
每个链接转到父(index
)路由下的嵌套路由,呈现为{{outlet}}
路由的index
。它的工作原理如下:
/
:将index
呈现到应用程序商店/sign_in
:呈现索引内容然后将index/sign_in
呈现到索引模板的出口/request_invite
:呈现索引内容然后将index/request_invite
呈现到索引模板的出口这样做很好,但我想要做的是默认情况下将“登录”模板渲染到index
插座中。所以上面的第一个子弹会改变如此:
/
:将index
呈现到{{outlet}}
,将index/sign_in
呈现为索引模板的出口模板
<script type="text/x-handlebars" data-template-name="application">
<h1>application</h1>
{{#linkTo "index"}}index{{/linkTo}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name='index'>
<h2>index</h2>
{{#linkTo "index.sign_in"}}Sign in{{/linkTo}}
|
{{#linkTo "index.request_invite"}}Request Invite{{/linkTo}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name='index/sign_in'>
<h3>index/sign_in</h3>
</script>
<script type="text/x-handlebars" data-template-name='index/request_invite'>
<h3>index/request_invite</h3>
</script>
路由
App = Ember.Application.create();
App.Router.map(function() {
this.resource("index", function() {
this.route("sign_in");
this.route("request_invite");
});
});
首次加载时,它不会显示index/sign_in
或index/request_invite
模板。我默认会显示index/sign_in
模板。
答案 0 :(得分:6)
您可以明确声明IndexRoute并实施redirect hook:
App.IndexRoute = Ember.Route.extend({
redirect : function(){
this.transitionTo("index.sign_in");
}
});
更新:使用其他命名的路线然后索引(JS Bin Link)
App = Ember.Application.create();
App.Router.map(function() {
this.resource("main", function() {
this.route("sign_in");
this.route("request_invite");
});
});
App.IndexRoute = Ember.Route.extend({
redirect : function(){
this.transitionTo("main");
}
})
App.MainIndexRoute = Ember.Route.extend({
redirect : function(){
this.transitionTo("main.sign_in");
}
});