Emberjs (1.0rc1)嵌套路由,但在父路由时呈现默认的子路由
emberjs (1.0rc1) nested routes but render default child route when at parent
我有一个ember应用程序的主页显示两个链接:'登录'和'请求邀请'。
每条链路都进入父路由(index
)下的嵌套路由,呈现为index
路由的{{outlet}}
。它是这样工作的:
-
/
:将index
呈现到应用程序出口 -
/sign_in
:渲染索引内容,然后渲染index/sign_in
到索引模板的出口 -
/request_invite
:渲染索引内容,然后渲染index/request_invite
到索引模板的出口
这工作得很好,但我想做的是在默认情况下将"登录"模板渲染到index
出口。那么上面的第一个项目符号就会变成这样:
-
/
:将index
呈现为{{outlet}}
, 将index/sign_in
呈现为索引模板的出口
模板/strong>
<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>
<路线/strong>
App = Ember.Application.create();
App.Router.map(function() {
this.resource("index", function() {
this.route("sign_in");
this.route("request_invite");
});
});
这是一个包含上述代码的jsbin。
当它第一次加载它不显示index/sign_in
或index/request_invite
模板。我想显示默认的index/sign_in
模板
你可以显式声明IndexRoute并实现重定向钩子:
App.IndexRoute = Ember.Route.extend({
redirect : function(){
this.transitionTo("index.sign_in");
}
});
Update: Using other name then index (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");
}
});
相关文章:
- 从Sencha Touch迁移到EXT JS 6-Contoller的默认/空路由
- 条件路由更改 Angular 2 中的默认路由
- Angular js在浏览器页面刷新后未路由到默认页面
- angular-index.html只识别默认路由中定义的函数
- 处理Ember.js默认路由之外的页面URL哈希参数
- 具有默认值的 JavaScript 路由
- 使用可选参数和默认模型定义路由
- 角度.JS:没有哈希时无法设置默认路由
- 快速.js路由.如何将默认路由放在我所有现有路由之前
- Ember JS 在添加新路由后呈现默认模板
- 如何使用node/express将每个无效请求路由到默认路径
- Angular.js:prettyPhoto URL重定向到Angular路由中提到的默认页面
- 如何设置具有可选ID的路由以进行查找,以及回退默认模型
- 如何在Meteor Iron路由器中的一条路由中不显示默认模板
- 通过聚合物核心页组件指定默认的熨斗控制器路由(内部元素)
- 默认情况下,如何制作Express路由需要身份验证
- 协议重定向错误地将React JS应用程序路由到IE9的默认页面
- 将子路由设为默认值
- 默认情况下,在方向的旅行模式下路由不激活
- 在页面加载时不会触发默认路由内的主干pubsub - global事件