Всем доброго времени суток!
Приключилась очень забавная вещь с интерфесом в ангуляре.
По стайлгайду ангуляра, я создал несколько моделей на интерфесах(хотя всегда делал на классах).
Вот код:
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й элемент коллеции!
Ребята, что за дичь происходит? Он словно мутировал и сам стал коллекцией, у которой нет ее методов)