Диалог закрытия компонента программно угловой 2 - PullRequest
0 голосов
/ 22 января 2019

В моем приложении Angular 2 есть компонент, который я использую как экран, а также как диалог / всплывающее окно. Это мой HTML

<app-dialog [(visible)]="showDialog">
 <div>
    <ng-template #container>
    </ng-template>
 </div>
 <div *ngIf="!showDialog">
    {{removeComponent(popUpComponent)}}
 </div>
</app-dialog>

Вот код моего файла TS, в который я добавляю компонент как дочерний ...

this.showDialog = !this.showDialog;
this.popUpComponent = AdmissionIntimationComponent;
this.addComponent(this.popUpComponent);

В моем AdmissionIntimationComponent я добавляю ссылку на этот компонент, как это в конструкторе;

constructor(private dialogRef: DialogComponent)

Теперь, когда я открываю это AdmissionIntimationComponent как всплывающее окно, оно прекрасно работает, но когда я открываю это как отдельный экран, я получаю эту ошибку

Ошибка: ошибка (в обещании): ошибка: StaticInjectorError (AppModule) [AdmissionIntimateComponent -> DialogComponent]: StaticInjectorError (Платформа: ядро) [AdmissionIntimaComponent -> DialogComponent]: NullInjectorError: Нет поставщика для DialogComponent!

И если я не использую ссылку Dialog в конструкторе, эта ошибка исчезнет, ​​но я не могу закрыть диалог программным способом.

Есть ли способ устранить эту ошибку или закрыть диалоговое окно программным способом?

...