我的路线定义为:
AS.Router.map(function(){
this.resource('analytics', {path: '/analytics'}, function(){
this.route('index', {path: '/'});
this.route('config', {path: '/config'});
);
});
AS.AnalyticsRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('analytics.index');
}
});
使用上面的配置,我可以加载页面:
- 这会加载分析/索引模板
- 这会加载analytics / config模板
但是#/ analytics / index没有加载,它只显示加载的gif图像。以下是我的模板的样子:
{{outlet}}
index
config
我是否有办法在不破坏#/ analytics的情况下将URL链接到#/ analytics / index工作?
谢谢, DEE
答案 0 :(得分:0)
如果在路由器映射中定义resource
,则analytics.index
是隐式路由,不应显式定义。默认行为是,analytics.index
模板将在您analytics
定义的地方的{{outlet}}
模板的插座中呈现。
因此,例如,这应该按预期工作:
AS.Router.map(function(){
this.resource('analytics', {path: '/analytics'}, function(){
this.route('config', {path: '/config'});
);
});
这会将analytics.index
模板正确呈现到analytics
模板插座。
如果导航到analytics
并且您希望将用户重定向到"/"
,则可以直接访问/analytics
路由,那么您应该从IndexRoute
重定向:
AS.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('analytics');
}
});
希望它有所帮助。