Я хочу установить свойства класса вручную, но в настоящее время я не могу этого сделать.
Когда загружается моя страница, расписание типа any устанавливается в ngOnInit.Затем одним нажатием кнопки я хочу метод, который должен вручную устанавливать значение свойства вызываемого класса.К сожалению, установка значения возвращает ошибку
ОШИБКА TypeError: Невозможно установить свойство 'operatorId' из неопределенного
Вот как это происходит в моем коде
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ScheduleService } from './../schedules/schedule.service';
import { Ticket } from './../ticket/ticket';
@Component({
selector: 'app-booking',
templateUrl: './booking.page.html',
styleUrls: ['./booking.page.scss']
})
export class BookingPage implements OnInit {
schedule: any;
ticket: Ticket;
constructor() { }
ngOnInit() {
// set the schedule ID
this.route.queryParams.subscribe(params => {
this.scheduleId = params['schedule'];
});
this.selectedSchedule(this.scheduleId);
}
// get schedule selected
selectedSchedule(scheduleId: string) {
this.scheduleService.getSchedule(scheduleId).then(data => {
this.schedule = data;
});
}
// buy ticket
buyTicket(ticket: Ticket) {
console.log(this.schedule.operatorId); // operator ID is logged
ticket.operatorId = this.schedule.operatorId;
console.log(ticket.operatorId); // ERROR TypeError: Cannot set property 'operatorId' of undefined
}
}
Как ни странно, я могу видеть значение в консоли, когда регистрирую operatorId перед установкой значения operatorId тикета.Но он становится неопределенным после установки.Почему это так и как лучше всего вручную установить значение свойства класса?