Asp.net 未捕获错误:无法转换";“未定义”;进入约会(角度)
在本例中,我希望从服务获取所有预订数据,并将它们推送到数组CalendarEvent[]。但是我收到了这个错误:无法将“未定义”转换为日期。我以为我的服务有问题 ng-calendar.component.ts:Asp.net 未捕获错误:无法转换";“未定义”;进入约会(角度),asp.net,angular,typescript,angular-calendar,Asp.net,Angular,Typescript,Angular Calendar,在本例中,我希望从服务获取所有预订数据,并将它们推送到数组CalendarEvent[]。但是我收到了这个错误:无法将“未定义”转换为日期。我以为我的服务有问题 ng-calendar.component.ts: export class NgCalendarComponent { events: CalendarEvent[] = []; bookings: any = {}; date: string; constructor(private bookingService:
export class NgCalendarComponent {
events: CalendarEvent[] = [];
bookings: any = {};
date: string;
constructor(private bookingService: BookingService) {}
ngOnInit() {
this.bookings = this.bookingService.getAllBookings();
for (let booking of this.bookings) {
var b = this.bookings[booking];
this.date = formatDate(b.bookDate, 'medium', 'en-us', 'GMT+8');
this.events.push({
start: new Date(this.date),
title: b.purpose,
});
}
}
booking.service.ts:
export class BookingService {
constructor(private http: HttpClient) { }
getAllBookings() {
return this.http.get('/api/bookings/')
.pipe(map(response => response));
}
}
BookingResource.cs:
public class BookingResource
{
public int Id { get; set; }
public RoomResource Room { get; set; }
public KeyValuePairResource Building { get; set; }
public DateTime BookDate { get; set; }
public ContactResource Contact { get; set; }
public string Purpose { get; set; }
public ICollection<TimeSlotResource> TimeSlots { get; set; }
public BookingResource()
{
TimeSlots = new Collection<TimeSlotResource>();
}
}
公共类BookingResource
{
公共int Id{get;set;}
公共房间资源室{get;set;}
public KeyValuePairResource Building{get;set;}
公共日期时间BookDate{get;set;}
公共联系人资源联系人{get;set;}
公共字符串用途{get;set;}
公共ICollection时隙{get;set;}
公共BookingResource()
{
时隙=新集合();
}
}
getAllBooking()
返回一个可观察的,您必须订阅它才能得到结果。或者将其转化为承诺:
async getAllBookings() {
return this.http.get('/api/bookings/').toPromise();
}
这样称呼它:
async ngOnInit() {
this.bookings = await this.bookingService.getAllBookings();
...
执行console.log(this.booking)以查看答案看起来像什么您需要处理null check现在返回booking对象。您知道如何迭代所有这些预订对象并将其值推送到事件[]中吗?如果我尝试迭代,它将返回此错误。未捕获错误:未捕获(承诺中):TypeError:this.bookings不适合抱歉,我不熟悉javascript和typescript。。到目前为止,我一直在用java和c#编写代码……一次解决一个问题,承诺中的Uncaught就是它所说的,您首先应该捕获错误,查看它所说的内容,然后从那里开始。我运行了错误处理,它说“TypeError:this.bookings不可修复”。我的错误是,我忘了更新bookings api。谢谢@Noelmout。。我会学到更多。