我正在获取json对象课程的价值,因此可以在我的patchValue上进行设置。我的控制台日志显示数据,但是当我尝试在组件上获取数据时,它说的course_professor是undefined或courseCode。我也尝试遍历我的json对象课程,但是当我得到特定对象时,它也显示未定义。该如何解决?
console.log
{
"message": "Sucess!",
"course": {
"id": 1,
"courseCode": "test",
"courseName": "test",
"courseDescription": "test",
"course_professor": 2,
"course_created_by": 2,
"course_date_created": "2019-10-13T20:19:57.546529Z",
"course_last_modified": "2019-10-13T20:19:57.546563Z"
},
"prof": [
{
"id": 2,
"email": "prof@gmail.com",
"first_name": "Prof",
"last_name": "Good"
},
{
"id": 3,
"email": "test@test.com",
"first_name": "test",
"last_name": "test"
}
],
"result": [
{
"id": 1,
"class_id": 15,
"coursemodule_title": " Module 1",
"coursemodule_date_created": "2019-09-30T09:54:22.109528Z",
"coursemodule_last_modified": "2019-09-30T09:54:22.109559Z",
"coursemodule_created_by": 2,
"coursemodule_course_id": {
"id": 1,
"courseCode": "test",
"courseName": "test",
"courseDescription": "test",
"course_professor": 2,
"course_created_by": 2,
"course_date_created": "2019-10-13T20:19:57.546529Z",
"course_last_modified": "2019-10-13T20:19:57.546563Z"
}
}
] }
组件
@Input() course: any = [];
courseUpdateForm = new FormGroup({
course_professor: new FormControl(''),
courseCode: new FormControl(''),
courseName: new FormControl(''),
courseDescription: new FormControl('')
});
constructor(
private coursemoduleService: CoursemoduleapiService
) { }
ngOnInit() {
this.courseUpdateForm.patchValue({
course_professor: this.course.course.course_professor,
courseCode: this.course.course.courseCode,
courseName: this.course.course.courseName,
courseDescription: this.course.course.courseDescription
})
}
ngOnChanges(changes: SimpleChanges) {
this.courseUpdateForm.patchValue({
course_professor: this.course.course.course_professor,
courseCode: this.course.course.courseCode,
courseName: this.course.course.courseName,
courseDescription: this.course.course.courseDescription
})
}
请在此处传递数据。请参阅此链接: https://stackblitz.com/edit/angular-eyuccg
答案 0 :(得分:0)
在CoursemoduleComponent中,您获取课程列表并将其分配给课程变量数组。这是您组件中的本地文件,并且已保存。这就是您在日志中看到的内容。之后,您将重定向到/ courses。因此,您需要以某种方式将该数据传递给另一个组件。您可以为此使用路由器参数或服务。或将其置于可观察状态并从另一个组件进行订阅。但是您需要将课程从您的组件传递到新的组件。
答案 1 :(得分:0)
我所做的是我使用localstorage来保存获取详细信息时对象的ID。然后,将id插入到details函数中,并尝试获取对象值,但是仍然出现未定义的错误。因此,我改用了formbuilder并使用setValue函数将数据存储在表单上。