У меня есть компоненты в Angular, один с шаблоном моего приложения, а другой с модальным. Я реализовал общий сервис для установки и получения события клика, например:
@Injectable({
providedIn: 'root',
})
export class SharedServiceService {
constructor() {}
private subject = new Subject<any>();
sendClickEvent(id) {
this.subject.next();
}
getClickEvent(): Observable<any> {
return this.subject.asObservable();
}
}
Я хотел бы открыть модальное окно, когда я нажимаю на кнопку моего приложения, которая получает идентификатор в параметре:
<a (click)="onOpenModal(pension.id)"> //HTML of my template
onOpenModal(id) {
this.sharedService.sendClickEvent(id); //.ts of my template
}
Но проблема в том, что я хотел бы получить этот идентификатор, создать новую функцию в модальном компоненте, вызвать ее в моем модальном HTML и отправить эту функцию в мой основной компонент:
export class ModalSupprimerComponent implements OnInit {
clickEventsubscription: Subscription;
constructor(private sharedService: SharedServiceService) {
this.clickEventsubscription = this.sharedService.getClickEvent(id).subscribe(() => {}); //problem here with id
}
onDelete(id) {
this.sharedService.sendClickEvent(id);
}
ngOnInit() {}
}
А мой модал HTML такой:
<button type="button" class="btn btn-primary" aria-label="Confirmer l'abandon" (click)="onDelete(id)">