Если проверить, пуст ли объект [готово] - PullRequest
0 голосов
/ 21 июня 2019

У меня есть имя списка "день".

export class Day{
    id:number;
    name: string;
    items: Object;
}

Я хочу отобразить "Привет", когда элементы пустые.Я пытаюсь использовать * ngIf, но это не работает.Это мой код.

<div class=" list" *ngFor="let day of days">
    <div class="list-name">
        <strong>
            {{day.name}}
        </strong>
        <div *ngIf= "day.items === 0">
            Hello
        </div>
    </div>
    <div *ngFor="let item of day.items">
        <div class="column" [style.background-image]="'url(' + item.photoPath + ')'">
            <h4 class="item-name">{{item.name}}</h4>
        </div>
    </div>
</div>

Ответы [ 5 ]

0 голосов
/ 21 июня 2019

Вы можете просто использовать выражение условного выражения внутри вашей интерполяции, не используя 'ngIf'.

...
<strong>
   {{ (day.item && day.item?.length) ? day.name : day.name + 'Hello' }}
</strong>
...
0 голосов
/ 21 июня 2019

Вы можете использовать <div *ngIf= "day.items == null || day.items.length === 0"> для проверки пустых или пустых элементов.

Демо https://stackblitz.com/edit/angular-scssrw

0 голосов
/ 21 июня 2019

Вы должны использовать длину, чтобы проверить размер массива

<div *ngIf= "day.items?.length === 0">
0 голосов
/ 21 июня 2019

Попробуйте это

<div *ngIf= "day.items.length === 0">
0 голосов
/ 21 июня 2019

Как мне кажется, элементы не являются массивом. Это объект. Использование ngFor над объектом приведет к ошибке.

Во-вторых, вы должны использовать .length над массивом, чтобы получить количество объектов. так и должно быть,

<div *ngIf= "day?.items?.length === 0">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...