Angular не может перейти к дочернему компоненту

У меня проблема с реализацией маршрутизации с помощью angular 7. код простой, но не могу найти, в чем проблема. возможно ты можешь помочь мне.

коды следующим образом:

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
  <div class = "container">
    <a routerLinkActive = "active" 
       routerLink = "/login">Login</a> |

    <a routerLinkActive = "active" 
       routerLink = "/home/catalog">Homasdfasdfe</a> | 
      
    <a routerLinkActive = "active" 
       routerLink = "/home/">Home</a> | 

    <a routerLinkActive = "active" 
      routerLink = "/catalog">Catalog</a> 
      
    <router-outlet></router-outlet>
  </div>
  `,
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {

}

приложение-routing.module.ts:

import { RouterModule } from '@angular/router';
import { NgModule } from '@angular/core';
import { LoginViewComponent } from './views/login/login.component';
import { HomeViewComponent } from './views/home/home.component';
import { CatalogViewComponent } from './views/catalog/catalog.component';

@NgModule({
  declarations: [ 
    LoginViewComponent, HomeViewComponent, CatalogViewComponent
  ],
  imports: [
    RouterModule.forRoot([
      { path: 'login', component: LoginViewComponent },
      { path: 'home', component: HomeViewComponent, children: [
         { path: 'catalog', component: CatalogViewComponent }
      ] },
      { path: 'catalog', component: CatalogViewComponent },
      { path: '**', redirectTo: 'login' }
    ])
  ],
  exports: [
    RouterModule,
  ],
  providers: [],

})
export class AppRoutingModule {}

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app.routing.module';

@NgModule({
  declarations: [ AppComponent],
  imports: [ 
    AppRoutingModule, 
    BrowserModule, FormsModule, HttpModule 
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

проблема в том, что если я нажму Homasdfasdfe, он покажет содержимое дома, а не каталога.

любые решения?

С наилучшими пожеланиями,

Лео

Если вы хотите, чтобы /catalog маршрутизировался, почему вы добавляете /home/catalog в качестве пути?

GaryB 06.03.2019 16:54

Вы импортируете свой AppRoutingModule в свой AppModule?

Julien Ambos 06.03.2019 16:54

Привет, Гэри, я просто хочу попробовать, работает ли /catalog как дочерний маршрут. если я удалю /catalog, он также не сможет перейти к /home/catalog.

user1938143 07.03.2019 06:38

Привет, Жюльен, да, я импортировал AppRoutingModule, я также вставил код.

user1938143 07.03.2019 06:38
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
4
95
2

Ответы 2

Я думаю, ваша проблема в том, что вы используете компонент «CatalogViewComponent» в дочернем маршруте, а затем в основной дороге чуть ниже него. Попробуйте удалить основной маршрут «каталог», возможно, это решит вашу проблему.

Привет, Кристофер, я попробовал твое решение, но оно тоже не сработало. в чем проблема как обычно.

user1938143 07.03.2019 06:34

Попробуйте изменить маршрут до дома, как показано ниже.

RouterModule.forRoot([
   { path: 'login', component: LoginViewComponent },
   { path: 'home', children: [
      { path:'', component: HomeViewComponent },
      { path: 'catalog', component: CatalogViewComponent }
   ]},
   { path: 'catalog', component: CatalogViewComponent },
   { path: '**', redirectTo: 'login' }
])

Другие вопросы по теме