Necesito cambiar dinámicamente el comportamiento de un cuadro de selección. El siguiente enfoque no funciona, porque esta variable no se puede configurar dinámicamente después de llamar a un servicio. El componente se inicializará antes de que se active el servicio. ¿Alguna solución que tengamos para tales situaciones?
<ng-select [multiple]=isMultiple ngOnInit(){ this.testService.isMultiple().subscribe( (isMultiple: boolean): void => { this.isMultiple = true; } }Active la detección de cambio manual mediante ChangeDetectorRef .
El valor de isMultiple se asigna a partir de la operación asynchronous , lo que lleva algún tiempo para completar la operación asíncrona y recuperar los resultados. Entonces, angular no detecta automáticamente el cambio de isMultiple . En tales casos, debemos activar manualmente la change detection una vez que se haya completado la operación asíncrona.
import {ChangeDetectorRef} from "@angular/core"; @Component({...}) export class [className] { constructor( private _cdref: ChangeDetectorRef ) {} ngOnInit(){ this.testService.isMultiple().subscribe( (isMultiple: boolean): void => { this.isMultiple = true; this._cdref.detectChanges(); } } }