在我的角度应用程序中,我只是将模型类的公共属性更改为私有属性。我还为他们创建了吸气剂和吸气剂。
我注意到,当发送使用请求URI(Customer.id
)中的属性的api请求时,getter返回未定义。我尝试将属性设置为之前的行,然后将console.log(Customer)
设置为以下行:
{mId: 2, mName: "name", mEmail: "email@gmail.com", mPassword: null, mTelNr: "06-12345678", …}
id: 3 // <-- should not be created
mAdmin: true
mCity: "city"
mDateOfLastAppointment: "2019-08-01"
mEmail: "email@gmail.com"
mHouseNr: "14"
mId: 2 // <-- should be set in stead of creating id property
mName: "name"
mPassword: null
mStreet: "street"
mTelNr: "06-12345678"
在设置console.log(Customer)
之前执行Customer.id = 3
时,输出不具有id
属性。设置器应将Customer.mId
设置为3,而不是创建属性id
。
客户类别:
import {Reservation} from './reservation';
export class Customer {
get admin(): boolean {
return this.mAdmin;
}
set admin(value: boolean) {
this.mAdmin = value;
}
get dateOfLastAppointment(): string {
return this.mDateOfLastAppointment;
}
set dateOfLastAppointment(value: string) {
this.mDateOfLastAppointment = value;
}
get city(): string {
return this.mCity;
}
set city(value: string) {
this.mCity = value;
}
get street(): string {
return this.mStreet;
}
set street(value: string) {
this.mStreet = value;
}
get telNr(): string {
return this.mTelNr;
}
set telNr(value: string) {
this.mTelNr = value;
}
get password1(): string {
return this.mPassword1;
}
set password1(value: string) {
this.mPassword1 = value;
}
get password(): string {
return this.mPassword;
}
set password(value: string) {
this.mPassword = value;
}
get email(): string {
return this.mEmail;
}
set email(value: string) {
this.mEmail = value;
}
get name(): string {
return this.mName;
}
set name(value: string) {
this.mName = value;
}
get id(): number {
return this.mId;
}
set id(value: number) {
this.mId = value;
}
get houseNr(): string {
return this.mHouseNr;
}
set houseNr(value: string) {
this.mHouseNr = value;
}
private mId: number;
private mName: string;
private mEmail: string;
private mPassword: string;
private mPassword1: string;
private mTelNr: string;
private mStreet: string;
private mHouseNr: string;
private mCity: string;
private mDateOfLastAppointment: string;
private mAdmin: boolean;
reservations: Reservation[];
constructor() {
}
}
调用api的方法:
getCustomersReservations(customer: Customer) {
console.log(customer);
customer.id = 3;
console.log(customer);
return this.api.get('customers/' + customer.id + '/reservations')
.pipe(map(ApiService.extractData));
}
我错误地使用了这些吸气剂和吸气剂吗?