2016-08-17 125 views
1

使用Angular 2 Router。我有一個2級路由(root routingchild routing]頁面重新加載子路由

我的問題是,導航到一個孩子路線時被加載後孩子被重新加載頁面。

子級路由

const childRoutes: Routes = [ 
    { 
    path: '', 
    component: BaseComponent, 
    children: [ 
      { 
      path: '', 
      component: DetailsComponent 
      }, 
      { 
       path: 'other', 
       component: OtherComponent 
      } 
     ] 
    } 
]; 

export const childRouting = RouterModule.forChild(childRoutes); 

頂級路由

const appRoutes: Routes = [ 
    { 
     path: '', 
     redirectTo: '/overview', 
     pathMatch: 'full'}, 
    { 
     path: 'overview', 
     component: OverviewComponent}, 
    { 
     path: 'sub', 
     //This is the module which the childRoutes belongs to. 
     loadChildren: 'app/components/sub.module#SubModule' 
    } 
]; 

export const appRoutingProviders: any[] = []; 

export const routing = RouterModule.forRoot(appRoutes); 

從DetailsComponent

呼籲導航
export class DetailsComponent implements OnInit { 
    constructor(private router: Router) { } 

    ngOnInit() { } 

    onSubmit() { 
     this.router.navigate(['/sub/other']) 
    } 
} 

P.S

我試圖讓這個問題的短,所以如果需要更多的代碼,那麼請讓我知道,我會很樂意加入。

+0

你是什麼意思的「頁面重新加載」。我從來沒有看到路由器重新加載頁面。它只添加/刪除組件並更新瀏覽器URL欄中的URL。 –

+0

這就是爲什麼我很困惑。整頁重新加載。完整的xhr電話,獲取所有js文件,照片和所有內容。頁面是空白的..有角度js的加載指示器,然後子視圖重新出現。我能夠導航到我想要的頁面,但接着又有另一個http調用到同一頁面。我會嘗試記錄屏幕並將其作爲gif附加 – royB

+0

應該指向子路由的鏈接的URL是什麼? (當鼠標移動到鏈接上時,工具欄中的chrome會顯示什麼) –

回答