Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

413
Views
¿Por qué Angular carga mi plantilla raíz dos veces?

Mi componente raíz se carga dos veces a pesar de que tengo un componente separado para mi página de inicio. He intentado usar diferentes cosas, como pathMatch , componente separado, etc., pero no tuve suerte. Cuando voy a /dashboard , funciona bien, pero cuando carga la página inicialmente (página raíz), la barra de navegación se carga dos veces. Quiero evitar eso.+

Mi código se ve así:

 import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { NavbarComponent } from './navbar/navbar.component'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { RouterModule, Routes } from '@angular/router'; import { RootComponent } from './root/root.component'; import { FeatureDashboardComponent } from '@angular/dashboard'; import { FeatureHomepageComponent } from '@angular/homepage'; const routes: Routes = [ { path: '', component: RootComponent, pathMatch: 'full', children: [ { path: '', component: FeatureHomepageComponent } ] }, { path: 'dashboard', component: FeatureDashboardComponent }, { path: '**', redirectTo: '' } ]; @NgModule({ declarations: [ NavbarComponent, RootComponent ], imports: [ BrowserModule, NgbModule, RouterModule.forRoot(routes)], providers: [], bootstrap: [RootComponent], }) export class AppModule {}

Y mi HTML para RootComponent es:

 <angular-navbar></angular-navbar> <div class="layout"> <router-outlet></router-outlet> </div>

Y la barra de navegación es:

 <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <div class="container-fluid"> <a class="navbar-brand">My App</a> </div> </nav>

Ejemplo en inspeccionar

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Creo que el problema podría ser que tiene la ruta '' cargando RootComponent y la ruta secundaria intenta cargar FeatureHomepageComponent pero también '' , que el enrutador no puede resolver de manera efectiva.

Intente darle a la ruta de los niños un camino que no esté vacío, así:

 ... { path: '', component: RootComponent, pathMatch: 'full', children: [ { path: 'home', component: FeatureHomepageComponent } ] }, ...

Y juegue con la redirección al final, de modo que cuando su aplicación se cargue, debería navegar a (por ejemplo) localhost:4200/home

about 4 years ago · Juan Pablo Isaza Report

0

Creo que el problema es con este código:

 path: '', component: RootComponent,

lo más probable es que NO desee tener su RootComponent aquí, ya que permitiría que RootComponent apareciera dentro de su

 <router-outlet>

y podría explicar por qué tienes 2 de ellos.

 <router-outlet>

solo debe enrutar a CHILDREN de su RootComponent.

En otras palabras, ninguna ruta (en su configuración de enrutamiento) debe representar su RootComponent, ya se está procesando. Las rutas allí solo deben representar lo que desea mostrar DENTRO de la salida de su enrutador, también conocido como NIÑOS de su RootComponent

Para la solución, creo que solo tienes que hacer esto:

 path: '', component: FeatureHomepageComponent

la primera ruta en su configuración (elimine la parte RootComponet y los niños: [] parte)

about 4 years ago · Juan Pablo Isaza Report

0

En lugar de llamar a la router-outlet intente llamar al nombre exacto del componente

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!