Cuando las variables angulares se actualizan dentro del componente después de algunas llamadas a la API, debería reflejarse en la interfaz de usuario de la vista móvil (según el valor de *ngIf), pero no es así. Funciona en la web, escritorio, etc. Y si creo un botón adicional en la página móvil y hago clic en él O vuelvo a cargar la página, también funciona en el móvil. Parece que la página móvil requiere interacción inicial, para cargar la página correctamente según el cambio de variable. No hace el trabajo por sí mismo.
<div *ngIf="!hasToken"> <button type="button" class="btn btn-primary" (click)="Login()"><img src="images/icon-ms.ico">Login</button> </div>AngularComponent.ts
ngOnInit() { this.exampleService.getData(id).subscribe((result) => { if (result != undefined || result != null) { this.hasToken= true; } } Una vez que la variable hasToken se vuelve verdadera en ngOnInit(), debería ocultar el botón Iniciar sesión , pero no lo hace, aunque el valor de la variable se actualiza.
Cualquier sugerencia para solucionar esto sería apreciada.
Creo que lo que estás experimentando está relacionado con la detección de cambios. Sugiero evitar la suscripción manual en el controlador mediante el uso de la tubería asíncrona. Esto mejora el rendimiento y funciona muy bien con la detección de cambios.
Puedes hacer algo como esto:
readonly hasToken$ = this.exampleService.getData(id).pipe(map(result => !!result)); <div *ngIf="(hasToken$ | async) === false"> <button type="button" class="btn btn-primary" (click)="Login()"><img src="images/icon-ms.ico">Login</button> </div>Creo que la forma en que inicias/actualizas tu variable es incorrecta. ¿Puedes agregar tu .ts? También puede verificar ChangeDetectorRef.MarkForCheck() y ngOnchanges() pero es demasiado excesivo para su problema.