2015-04-01 35 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