首页 > 解决方案 > 我尝试使用的属性在我控制台记录我的对象时定义时未定义

问题描述

问题: 为什么我的 Grade_ID 在我控制台记录时真正定义时却说我的 Grade_ID 未定义?我怎么解决这个问题?

已经尝试过: 在过去的几个小时里,我一直在尝试调试这个问题,这就是为什么我来堆栈溢出寻求解决方案的原因。-我已经用谷歌搜索了。-我已经检查了以前的堆栈溢出问题,它不会帮助我解决当前的问题。

//my Grade class
 export class Grade{
 public Grade_ID: number;
 public Grade_Mark: number;
 public Subject_Name: string;

constructor(Grade_ID: number, Grade_Mark: number, Subject_Name: string){
Grade_ID = Grade_ID;
Grade_Mark = Grade_Mark;
Subject_Name = Subject_Name;
  }
}

//my .ts file
  grades: Grade[];
  grade: Grade;

 viewSubjectMarks() {
this.studentGrades.forEach((element1) => {
  if (element1.Student_ID === this.Student_ID) {
    console.log(element1)
    this.grade.Grade_ID = element1.Grade_ID;
    this.grade.Grade_Mark = element1.Grade_Mark;
    this.subjects.forEach((element2) => {
      if (element1.Subject_ID === element2.Subject_ID) {
        this.grade.Subject_Name = element2.Subject_Name;
        this.grades.push(this.grade);
      }
    });
  }
});
  }
}

this.grade = {
  Grade_ID: 0,
  Grade_Mark: 0,
  Subject_Name: '',
};

**在此处输入图片描述**

标签: angulartypescript

解决方案


问题this.gradeundefined。请注意,错误是说它不能设置 Grade_IDundefined. 不是说Grade_IDundefined,也不是说element1undefined

在您显示的代码中,在循环之后this.grade分配了一个值。在循环之前它具有 value ,因此是错误消息。它需要分配您在循环之前显示的对象。undefined


推荐阅读