Я пытаюсь открыть модель из родительского компонента.Итак, я получил фиктивное диалоговое окно, открытое из родительского компонента, с помощью справки: как передать данные в модальный Angular ng-bootstrap для привязки .В диалоге вместо фиктивного текста у меня есть поле ввода для отображения информации из родительского компонента, и в то же время пользователь может редактировать эту информацию и требовать, чтобы это изменение отправлялось обратно в родительскую информацию.Я пытаюсь сделать что-то похожее на Angular Material, в котором MAT_DIALOG использует tokeninjection, но я не полностью им следую.
import { Component, OnInit, InjectionToken, Injector, OnDestroy,
TemplateRef, Inject } from '@angular/core';
import {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';
export interface CancelDialogData {
name: string; // this can be any string;
Comments: string;
}
export declare const CUSTOM_DIALOG_DATA: InjectionToken<any>;
@Component({
selector: 'app-reject-dialog',
templateUrl: './reject-dialog.component.html',
styleUrls: ['./reject-dialog.component.css']
})
export class MyDialogComponent implements OnInit {
constructor(public activeModal: NgbActiveModal,
@Inject(CUSTOM_DIALOG_DATA) public data: CancelDialogData) { }
ngOnInit() {
}
onCancelClick(): void {
this.activeModal.close();
}
}
Из родительского компонента:
const dialogRef = this.modal.open(CancelDialogComponent, data:
{name: '', approverComments: ''});
, когда я пытаюсь передать эти данныеУ меня есть ошибка компилятора, что данные не являются NgbModalOptions.Я действительно не понимаю InjectionToken здесь, просто он выглядит чище, чем @ Input / @output.Помогите, пожалуйста, как этого добиться, как Активный материал Диалог.