Я хочу показать данные json, используя шаблон ng, но не могу показать данные. Но когда я использую элемент HTML, такой как div или span, он может отображать его.
формат json
const arr = [ { "дата": 1, "цвет": "нормальный" }, { "дата": 2, "цвет": "красный" }, { "дата": 3, "цвет": "нормальный" } ]
In TS;
dateArray: any;
public getJSON() {
return this.http.get("../assets/eventcalendar.json")
.pipe(map(res => res.json()));
}
getCalendar(){
this.getJSON()
.subscribe((event:any)=>{
let getEvent = JSON.stringify(event);
this.dateArray = JSON.parse(getEvent);
console.log('this.dateArray', this.dateArray);
})
}
In HTML: (This template can not show the json data)
<p-calendar (onSelect)="select($event)" [inline]="true" selectionMode="multiple" readonlyInput="true">
<ng-template pTemplate="body" let-item="dateArray">
<span
[ngClass]="item.color">
{{item.tgl}}
</span>
</ng-template>
</p-calendar>
В HTML: (этот шаблон может отображать данные json, но пользовательский интерфейс календаря не очень удобен)
<p-calendar (onSelect)="select($event)" [inline]="true" selectionMode="multiple" readonlyInput="true">
<ng-template pTemplate="body">
<span *ngFor="let item of dateArray"
[ngClass]="item.color">
{{item.tgl}}
</span>
</ng-template>
</p-calendar>
Я использую календарь Primeng для календаря и использую последнюю версию angular 7. Спасибо.