Я угловатый начинающий 2/TS.Как связать сильно типизированный массив в html
У меня есть этот schoolyears компонент:
export class SchoolyearsComponent implements OnInit {
schoolyears: Schoolyear[] = new Array();
constructor(
private _router: Router,
private _schoolyearsService: SchoolyearsService) {
}
ngOnInit()
{
this._schoolyearsService.getSchoolyears().subscribe(s => {
this.schoolyears.push(new Schoolyear(s));
});
}
}
Данные, которые я хочу показать в интерфейсе подходит как данные JSON. Мне нужно обернуть эти данные json в пользовательский класс Schoolyear.ts, а затем привязать его в пользовательском интерфейсе.
export class Schoolyear {
constructor(obj)
{
this.id = obj.id;
this.name = obj.name;
this.startDate = new Date(obj.startDate);
this.endDate = new Date(obj.endDate);
}
id: number;
name: string;
startDate: Date;
endDate: Date;
}
<div>
<div *ngFor="#s of schoolyears">
<div style="font-weight:bold;">
<h4>{{s.id}}</h4>
<h4>{{s.name}}</h4>
<p>{{ s.startDate}}</p>
<p>{{ s.endDate}}</p>
</div>
</div>
</div>
Ни один из этих 4 свойств не отображается в пользовательском интерфейсе.
Как правильно обернуть данные json и отобразить его в пользовательском интерфейсе?
У меня нет ошибок в выводе на консоль.
О, действительно? Я думал, что функция .map работает как .select с Linq. Ahh ... его действительно поздний ха-ха, я даже не использую карту ... Я хотел ... – Pascal
Я не знаю, почему вы используете TWO-карты, потому что он работает с одним карточным вызовом: this._schoolyearsService.getSchoolyears(). (годы => { this.schoolyears = years.map (y => new Schoolyear (y)); }); – Pascal
В вашем случае это похоже. Это необходимо, если вы хотите переместить отображение в свою службу. В этом случае оператор отображения наблюдаемого необходим для адаптации потока данных. В противном случае вы правы, метод карты из массива достаточно ;-) –