No se puede encontrar un ejemplo aplicable que funcione en cualquier parte del enrutamiento de componentes secundarios utilizado DESPUÉS de un parámetro:
En este momento, el profile/userName funciona, pero los niños no.
{ path: 'profile/:userName', component: ProfileComponent, children: [ { path: 'deets', component: DeetsComponent } ] }, Recibo Error: Cannot match any routes. URL Segment: 'profile/admin%40admin.com/%5B'deets'%5D'
¿No está seguro si es la codificación en la URL o algo que estoy haciendo mal con mi enrutamiento que está causando el error?
Usando Angular 4.1
'profile/admin%40admin.com/%5B'reviews'%5D' url contiene caracteres especiales que se codificaron para que no coincidan con la ruta de la ruta definida.
Ver w3schools: https://www.w3schools.com/tags/ref_urlencode.asp
simplemente usé esto para que las cosas funcionaran en angular 4.4; @angular/cli 1.4.5; nodo 6.11.3;
<a routerLink="/detail/{{item.id}}" routerLinkActive="active"> DETAIL </a>Parece que probablemente esté pasando una entrada a una propiedad de enlace de enrutador, pero no está envolviendo la propiedad de entrada entre corchetes.
Entonces routerLink= vs [routerLink]= . Si no incluye los corchetes, el enlace se tratará como una cadena y verá esos errores de codificación cuando intente navegar a la ruta.
<a [routerLink]="['detail', item.id, 'deets']">DETAIL</a>