NgIf и ноль: почему шаблон не отображается? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть следующие наблюдаемые и угловые составляющие:

count$: Observable<number>;

this.count$ = this.getCount();

Используя следующее, я получаю значение 0 (ноль);

this.count$.subscribe(x => console.log(x));

На шаблоне у меня есть:

<a routerLink="/dash" *ngIf="(count$ | async)">
  <ng-container *ngIf="count$ | async as count">
    Count: {{count}}
  </ng-container>
</a> 

Если count$ равно 1, я получаю Count: 1, но если count$ равно 0, содержимое Count: 0 даже не отображается.

Есть идеи, почему?

Ответы [ 2 ]

2 голосов
/ 10 июля 2019

Вы используете ngIf, означает, что вы делаете условное отображение вашего значения.Когда значение равно 0, ваше условие оценивается как ложное и, следовательно, не будет отображаться.

1 голос
/ 10 июля 2019

Как обсуждено в этой проблеме , это ожидаемое поведение. NgIf приводит указанное выражение к значению boolean. Если выражение оценивается в значение falsy (значения, переведенные в false ), содержимое не будет отображаться.

Ниже приведены все значения, которые в настоящее время javascript переводит в false :

if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ('')
if ("")
if (``)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...