Tengo un Users productor observable que tiene una propiedad isLoading , de modo que arroja el resultado esperado:
{{ (user$ | async).isLoading }} Me gustaría poder usar esta propiedad isLoading en un atributo HTML, como este:
<button md-raised-button type="submit" [disabled]="user$.isLoading">Login</button>pero ninguna sintaxis que uso parece funcionar. ¿Cómo se suscribe a un observable como este en un atributo HTML?
Puede usar la tubería asíncrona en la etiqueta html como en el ejemplo a continuación, pero no olvide el operador seguro:
<button md-raised-button type="submit" [disabled]="(user$ | async)?.isLoading">Login</button>Una opción que tiene aquí, si ha actualizado a Angular 4, es usar *ngIf . Puedes hacer algo como esto:
<div *ngIf="user$ | async; let user"> {{user.isLoading}} <button md-raised-button type="submit" [disabled]="user.isLoading">Login</button> </div> Con *ngIf puede suscribirse al observable con async y asignar el valor a una variable con let . Luego use la variable en otros lugares de su plantilla.
Esta es una nueva función agregada en Angular 4. La mayoría de las aplicaciones de Angular2 se pueden actualizar a 4 sin necesidad de cambios.
Espero que ayude.