2016-08-17 2 views
1

Использование Angular 2 Router. У меня есть маршрут 2 уровня (root routing и child 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-адрес ссылки, которая должна указывать на детский маршрут? (что показывает хром на панели инструментов при перемещении мыши по ссылке) –

ответ

3

Это связано с поведением браузера по умолчанию. Либо вызовите preventDefault(), либо возвратите false в обработчик события или добавьте type="button", чтобы предотвратить поведение по умолчанию для отправки сообщения.

Смежные вопросы