Al navegar entre pantallas, hay ocasiones en las que es necesario pasar datos particulares. Usando routerLink podemos incluir parámetros de manera similar a como lo hacemos con subdominios o subdirectorios. Para recibir e interpretar estos parámetros correctamente es necesario definir las rutas específicas en appRoutes y consultarlos luego en el componente con el objeto ActivatedRoute.
<br/><br/><b>Amigos</b><ng-container *ngFor="let user of friends; let i = index"><div *ngIf="user.friend"><a routerLink="/conversation/{{user.uid}}">{{i}}.{{user.nick}}-{{user.email}}</a></div></ng-container><b>NoAgregadoss</b><ng-container *ngFor="let user of friends; let i = index"><div *ngIf="!user.friend"><a routerLink="/conversation/{{user.uid}}">{{i}}.{{user.nick}}-{{user.email}}</a></div></ng-container>
Cuando usas corchetes puedes pasar una bind property (una variable) que puedes definir en la clase, y cuando no los usas pasas la ruta como tal.
Acá un poco más de info:
En todo esto no me queda muy claro para qque funciona el snapshot.params
Si imprimes solo this.activatedRoute te darás cuenta que es un objeto que trae muchas cosas.
Con
this.activatedRoute.snapshot.params['uid']
Estamos trayendo el parámetro que le pasamos a la ruta que especificamos, en este caso estamos trayendo el uid del usuario que clickeemos. Todo esto para poder usar los valores de ese usuario en la otra ruta.
Gracias me sirvió para entender la función de un snapshot.
No entiendo cuando dice que tenemos que recuperar el uid del url
Proviene de la ruta de navegación. Por ejemplo
localhost:4200/conversation/123
En este caso, el parámetro que estás obteniendo es 123, esto sucede por cómo se configuró la ruta en app.module.ts.