Задать вопрос
@avikik

Не могу обратиться к полю интерфеса в Angular?

Всем доброго времени суток!
Приключилась очень забавная вещь с интерфесом в ангуляре.
По стайлгайду ангуляра, я создал несколько моделей на интерфесах(хотя всегда делал на классах).
Вот код:
export interface Car {
  id?: string;
  name: string;
}
export interface CarsBlock {
  carsMarks: string;
  cars: Car [];
}

export interface CarsBlockPage {
  CarsBlockList: CarsBlock[];
}


И вот я получаю отличный json с сервера и заполняю им свою модель.
Только вот в чем прикол. Когда я начинаю его закидывать в *ngFor
<div *ngFor="let carsBlock of CarsBlockPage.CarsBlockList">
  <app-cars-block [carsBlock]="carsBlock"></app-cars-block>
</div>

Он ругается и говорит что работает только с массивом! и пишет тип undefind
Но если я уберу CarsBlockList
<div *ngFor="let carsBlock of CarsBlockPage">
  <app-cars-block [carsBlock]="carsBlock"></app-cars-block>
</div>

Все отлично работает и он принимает его за обычную коллекци.

Также я хотел сделать unshift для данной коллекции
CarsBlockPage.CarsBlockList.unshift(carBlock);

Он говорит что у него нет такого метода! И к этой коллекции по индексу не могу обращаться
Но если напишу:
CarsBlockPage[0]

Он мне отдает 1й элемент коллеции!
Ребята, что за дичь происходит? Он словно мутировал и сам стал коллекцией, у которой нет ее методов)
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽