Отрицание Angular ngIf "как" - PullRequest
       0

Отрицание Angular ngIf "как"

0 голосов
/ 10 марта 2020

Есть ли возможность отменить синтаксис "как" в структурных директивах?

Я пытался написать что-то вроде этого <div *loader="!(data$ | async as data)"></div>, но в IDE сразу же подчеркивается, что это неправильный синтаксис.

Есть ли способ отменить этот синтаксис?

Основная идея заключается в том, что у меня есть наблюдаемое, где я получаю данные. Если данные отсутствуют, мне нужно показать загрузчик. (*loader="true" показывает загрузчик), и поэтому я пытаюсь отменить выражение.

Я знаю, что мог бы создать некоторую дополнительную переменную для хранения состояния загрузки или данных, но я хотел бы остаться с что у меня есть.

Ответы [ 2 ]

2 голосов
/ 10 марта 2020

Я бы использовал ngIf с блоком else с шаблоном:

<div *ngIf="data$ | async as data; else loading">
    ...
</div>
<ng-template #loading>Loading User Data...</ng-template>

Вы можете увидеть рабочий пример здесь .

0 голосов
/ 10 марта 2020

результат выражения всегда сохраняется в переменной as var, но вы не сможете получить данные и отрицать их в одной структурной директиве. вы можете сделать *loader="!(data$ | async) as data", но вы получите это false в ваших данных, когда они придут. Я думаю, что вы должны переработать директиву loader, вместо логики c, поэтому вместо ложного значения будет показан загрузчик, и истинное значение будет передано в шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...