Angular 5 ngIfElse: сохранение условного результата в переменной
Код:
<mat-icon [ngClass]='{ rotate: !users }'>refresh</mat-icon>
<div *ngIf="usersObservable | async as users; else loading">
...
</div>
<ng-template #loading let-users>
Waiting...
</ng-template>
Ожидаемое: rotate
класс применяется к <mat-icon>
пока пользователи загружаются
Результат: класс не применяется
Вопрос: возможно ли сохранить / использовать логический результат оценки ngIfElse?
PS: в этом примере я хочу rotate
класс для применения <mat-icon>
пока не завершится HTTP-запрос.
1 ответ
Решение
as users
переменная только в области видимости для привязок внутри или внутри тега, где *ngIf
применены.
Вы бы сделали что-то вроде
<mat-icon [ngClass]='{ rotate: !(usersObservable | async)?.users }'>refresh</mat-icon>
Убедитесь, что ваши наблюдаемые ведут себя правильно, когда подписаны более одного раза. Например, некоторые из методов, упомянутых в разделе Как правильно передать результат сетевого вызова Angular Http в RxJs 5?