Я хочу отправить данные от учеников / маршрут моих учеников ученикам / профиль ученика /: id
оба принадлежат другому модулю, который является дочерним модулем модуля ученика после входа в систему.
В my-Students.html
<div *ngFor="student of students">
<a (click)="goToStudentProfile(student)"> student name </a>
</div>
мой-students.ts
goToStudentProfile (студент)
{
let studentData = { "firstName": student.firstname,
"phone": student.phone,
"email": student.email,
"birthdate": student.birth_date
}
this.studentsService.studentBasicInfo = []
this.studentsService.studentBasicInfo.push(studentData );
this.router.navigate(['students/student-profile/student.student_id'])
}
В studentService У меня есть общедоступное поле studentBasicInfo, объявленное как
studentBasicInfo = [];
компонент профиля студента:
ngOnInit()
{
console.log("studentBasicInfo", this.studentsService.studentBasicInfo)
}
//Output: studentBasicInfo undefined
Я пытался сделать это и с поведением поведения субъекта, но, возможно, оба компонента принадлежат разным модулям, поэтому он также не работает.
Есть идеи, как я могу это исправить?
UPDATE
Я также пробовал:
мой-students.component.ts
this.studentsService.setData(studentsData)
обслуживание:
studentData = new BehaviorSubject<any>(null)
studentData$ = this.studentData.asObservable();
setData(data)
{
this.studentData.next(data)
}
студент-profile.component.ts
ngOnInit(){
this.studentService.studentData$.subscribe(
data=>
{
console.log("subscribed",data)
})
}
//Output subscribed
объяснил мой сценарий:
stackblits
Но, к сожалению, это не работает из-за проблемы с зависимостями.
UPDATE:
Эта часть ответа от Аникет Авхад решила мою проблему:
Чтобы два сервиса совместно использовали несколько компонентов, вам следует
предоставлять услугу на более высоком уровне и не добавлять услугу в
поставщики обоих компонентов.