Quiero mostrar la lista de habitaciones disponibles en un
para eso declaré la variable de habitaciones que asigné a una suscripción a websocketService. Sin embargo, cada vez que creo una nueva sala, no se agrega a la lista automáticamente a menos que actualice la página. ¿Cómo arreglo eso?
inicio.componente.ts
rooms : any; constructor(private webSocketService: WebSocketService, private formBuilder: FormBuilder, private router: Router) { } ngOnInit(): void { this.rooms = this.webSocketService.getRooms().subscribe(res => { console.log(res.body) }); }webSocketService:
public getRooms() : Observable<any> { return this.http.get(`${this.url}/rooms`,{observe: 'response'});casa.html:
<ul> <li *ngFor="let room of rooms">{{rooms}}</li> </ul> ngOnInit(): void { this.webSocketService.getRooms().subscribe(res => { this.rooms = res }); }Debe realizar la asignación en la variable de clase dentro de la suscripción donde esté disponible
Intente convertir sus habitaciones variables en observables y solo obtenga la referencia del servicio. En la plantilla, obtendrá una suscripción utilizando Async Pipe.
ngOnInit(): void { this.rooms$ = this.webSocketService.getRooms(); } <ul> <li *ngFor="let room of rooms$ | async">{{room.someProperty}}</li> </ul>