angular - Typescript 对象动态赋值更改字段名称
我正在使用现有对象的一些值创建一个新对象。现在在将 fieldId 分配为 crs.parentFieldId 时,在最终对象中,fieldId 的名称本身变成了 parentFieldId。这里出了什么问题?1. 代码片段
ionViewWillEnter() {
console.log('ionViewWillEnter EditSubfieldFeePage');
this.fs.getCourseFieldBySelectedId().subscribe((cf: CourseField) => {
let ids = this.fs.getSelectedCourses();
for(let crs of cf.courses) {
if(ids.has(crs.courseId)) {
let courseFee: CourseFee = {
fieldId: crs.parentFieldId,
fieldName: cf.fieldName,
courseId: crs.courseId,
courseName: crs.courseName,
feeAmount: 0,
feeType: "MONTHLY"
}
this.courseFeeList.push(crs);
}
}
});
}
类定义
export class CourseFee {
fieldId: string;
courseId: string;
feeAmount: number;
feeType: string;
}
它运行正常,但在控制台中 fieldId 被重命名为 parentFieldId。
答案#1
看起来你添加的不是新的 courseFee 对象,而是 crs 对象(它有 parentFieldId 属性)
if(ids.has(crs.courseId)) {
let courseFee: CourseFee = {
fieldId: crs.parentFieldId,
fieldName: cf.fieldName,
courseId: crs.courseId,
courseName: crs.courseName,
feeAmount: 0,
feeType: "MONTHLY"
}
this.courseFeeList.push(crs); // <--- here!
}
为了解决它,请更改这一行
this.courseFeeList.push(crs);是
this.courseFeeList.push(courseFee);