Не удается найти другой поддерживающий объект '[object Object]' типа 'object', но это уже массив - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть метод, чтобы получить данные от конца к массиву

Вот метод

getUtilities(): void {
    // DropdownHelpers.fillDropdownOptions(
    //     this._propertyService.getMarketingInformationUtilityTypes(),
    //     this.utilities
    // );
    this._propertyService.getMarketingInformationUtilityTypes().subscribe(result => {
        this.utilities = result.items;
        console.log(this.utilities);
    });
}

и вот что я вижу в консоли

enter image description here

Но когда я пытаюсь сделать *ngFor="let utility of utilities"

Я получил

MarketingEditComponent. html: 38 Ошибка ОШИБКИ: не удается найти Отличающийся поддерживающий объект '[object Object]' типа 'object'. NgFor поддерживает только привязку к итерациям, таким как массивы.

Где моя проблема? Данные возвращаются в массив

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

this.utilities может быть не определено до вызова API - в то время это не массив.

Решения:

  • Добавьте *ngIf перед l oop, чтобы проверить, является ли он массивом в шаблоне.

ИЛИ

  • Инициализируйте его в пустой массив при его определении, например this.utilities = [];
0 голосов
/ 25 апреля 2020

когда вы определяете утилиты, объявляйте их как

утилиты: любые; или утилиты: любая = [];

и в вашем использовании * ngIf до того, как вы итерируете что-то вроде

<div *ngIf="utilities"> 
<div *ngFor="let util of utilities">
{{util.OptionDto.name}} {{util.OptionDto.id}} 
</div>
</div>

Ничего нового из того, что они сказали ранее. Если вы все еще в замешательстве, предоставьте мне стек.

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