¿Cómo validar los campos en los subcomponentes cuando tratamos de cambiar la pestaña con la ruta?
Necesito su ayuda, investigué pero no encontré ninguna solución relevante.
Tengo un componente compartido que tiene este código, que estoy usando para la navegación por pestañas a través de rutas.
<nav mat-tab-nav-bar="" *ngif="navLinks">
<a mat-tab-link="" #tablink="" *ngfor="let link of navLinks; let i = index" [routerlink]="link.link" routerlinkactive="" #rla="routerLinkActive" [active]="rla.isActive" [ngclass]="{'invalid': link.inValid}">
{{link.label}}
</a>
</nav>
<div class="zin-tab-body content">
<router-outlet></router-outlet>
</div>
<div class="controls" fxlayout="row" fxlayoutgap="32px" fxlayoutalign="flex-start">
<div fxflex="90"></div>
<button [disabled]="!hasPrev" mat-raised-button="" color="primary" id="prev-btn" (click)="prev()" mattooltip="previous">
Prev
</button>
<button [disabled]="!hasNext" mat-raised-button="" color="primary" id="next-btn" (click)="next()" mattooltip="Next">
Next
</button>
</div>
Para cada ruta que tiene diferentes componentes,
En el siguiente clic desde este componente cambia la raíz.
next() {
if (this.activeLinkIndex !== (this.navLinks.length -1)) {
const locationConfig = this.navLinks.find(d => d.index === (this.activeLinkIndex + 1))
this.router.navigate([`${locationConfig.link}`], { relativeTo: this.route})
}
}
En este caso, ¿es posible validar ese subcomponente al hacer clic en siguiente antes de que cambie la ruta? Y restringir el cambio de ruta si es inválido.
davy.ai
Sí, es posible validar el subcomponente antes de que cambie la ruta. Aquí están los pasos que puedes seguir para lograrlo:
Con estos cambios, el componente compartido verificará el subcomponente actual para su validación al hacer clic en next y solo permitirá que cambie la ruta si el subcomponente es válido.