Necesito una forma de actualizar una variable en mi componente de encabezado (que siempre se muestra) cada vez que cambia un parámetro en la URL.
Mi enrutamiento:
const routes: Routes = [ { path: '', component: DefaultLayoutComponent, data: { title: 'Home' }, children: [ { path: 'home', component: HomeComponent }, { path: 'dashboard/:id', component: DashboardComponent, }, ] }, {path: '**', redirectTo: 'home'} ];El componente del tablero tiene una identificación adjunta y esto es lo que necesito rastrear. En el caso de que un usuario vaya a una página sin ID (como la ruta de inicio), quiero que la ID se muestre como 0.
Tengo esto funcionando hasta donde rastreará la identificación siempre que continúen llegando a las rutas con una identificación, pero tan pronto como naveguen a casa, se detiene todo el seguimiento.
encabezado.componente
import { Component, Input } from '@angular/core'; import { ClassToggleService, HeaderComponent } from '@coreui/angular-pro'; import { ActivatedRoute } from '@angular/router'; import { Subscription } from 'rxjs'; @Component({ selector: 'app-default-header', templateUrl: './default-header.component.html', }) export class DefaultHeaderComponent extends HeaderComponent { private issuer: Subscription; constructor(private classToggler: ClassToggleService, private route: ActivatedRoute) { super(); } issuerID: number; ngOnInit(): void { this.route.children.forEach(child => { child.params.subscribe(params => { const id = params['id'] || 0 console.log('id ' + id) this.issuerID = id }) }) } //To prevent memory leak ngOnDestroy(): void { if (this.issuer) this.issuer.unsubscribe() } }