2015-04-01 85 views
2

我的应用程序应用程序包含具有两个嵌套路线的父路线。获取父路由的模型后,默认情况下,我将转换到其中一个嵌套路由。“TransitionTo”影响Ember中的页面刷新

路由器是如下

this.resource('parent', {path: '/parent'}, function() { 
    this.route('route1', {path: '/route1'}); 
    this.route('route2', {path: '/route2'}); 
}); 

在父路由

redirect: function() 
{ 
    this.transitionTo('parent.route1'); 
} 

现在这个工作完全正常。但是,当我在路由“#/父/路线2”上刷新页面时出现问题。

其实我应该得到“route2”的内容,但transitionTo会使路由呈现“route1”。我该如何处理?

除此之外。我通过使用“this.modelFor('parent')”在嵌套路由中获取父路由的模型。

回答

1

而不是在App.Parent重定向,请在App.ParentIndex

App.ParentIndexRoute = Ember.Route.extend({ 
    redirect: function() { 
    return this.transitionTo('parent.route1'); 
    } 
}); 

演示http://emberjs.jsbin.com/pavomo/2/#/sales/orders/

请注意,您重定向到订单/ 4默认情况下,如果没有subroute发现。

+0

我在这里获取父路由的模型时遇到问题。以前在我的“route1”中,我曾经使用“this.modelFor('parent')”来获取父模型,但是现在“this.modelFor('parent.index')”似乎不起作用 – Presse 2015-04-01 06:18:02

+0

我写了一个这个模型在App.ParentIndex路由中处理了重定向,在子路由中使用了“this.modelFor('parent')” – Presse 2015-04-01 06:53:45