Typescript Объект динамического назначения изменяет fieldName - PullRequest
2 голосов
/ 12 мая 2019

Я создаю новый объект, используя некоторые значения из существующего объекта. Теперь при назначении 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 Ответ

1 голос
/ 12 мая 2019

Похоже, вы добавляете не новый объект 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);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...