MatDialog не открывается в IE 11 - PullRequest
0 голосов
/ 26 февраля 2019

Все эти диалоги в моем проекте не открываются в IE11 для моего развернутого кода, но отлично работают на моем локальном запуске в IE.Все они следуют одному и тому же коду.

component.html

<button mat-raised-button color="accent" class="accent" type="button" (click)="openNewCaseModal()" [disabled]="disableSubmit">{{ 'CASES.createCase' | translate }}</button>

component.ts

  openNewCaseModal(row) 

const dialogRef = this.dialog.open(CaseComponent, {
  width: '75%',
  data: this.caseData
});
dialogRef.afterClosed().subscribe(result => {
  if (result === 'submitted') {
    this.caseCreated.emit();
    this.snackbar.open('Case Created', '', { duration: 2000, verticalPosition: 'top' } );
  } else if (result === 'error submitted') {
    this.snackbar.open('Error Creating Case. Please Try Again.', '', { duration: 2000, verticalPosition: 'top' });
  }
});

}

dialog.component.ts

constructor(
 private caseService: CasesService,
 private sidebarService: SidebarService,
 private dialog: MatDialogRef<CaseComponent>,
 private fb: FormBuilder,
 private snackbar: MatSnackBar,
 @Inject(MAT_DIALOG_DATA) public data: any) {
}

Моя ошибка в консоли IE при попытке открыть диалоговое окно.

Ошибка: StaticInjectorError [e -> function () {this.role = "dialog",this.panelClass = "", this.hasBackdrop! = 0, this.backdropClass = "", this.disableClose! = 1, this.width = "", this.height = "", this.maxWidth = "80vw",this.data = null, this.ariaDescribedBy = null, this.ariaLabel = null, this.autoFocus =! 0, this.restoreFocus =! 0, this.closeOnNavigation =! 0}]:

StaticInjectorError (платформа: core) [e -> function () {this.role = "dialog", this.panelClass = "", this.hasBackdrop =! 0, this.backdropClass = "", this.disableClose =! 1, this.width= "", this.height = "", this.maxWidth = "80vw", this.data = нуль, this.ariaDescribedBy = нуль, this.ariaLabel = нуль, this.autoFocus! = 0, this.restoreFocus! = 0, this.closeOnNavigation =! 0}]:

NullInjectorError: Нет поставщика для функции () {this.role = "dialog", this.panelClass = "", This.hasBackdrop! = 0, this.backdropClass = "", this.disableClose! = 1, this.width = "", this.height = "", this.maxWidth = "80vw", this.data = нуль,this.ariaDescribedBy = null, this.ariaLabel = null, this.autoFocus =! 0, this.restoreFocus =! 0, this.closeOnNavigation =! 0}!

Похоже, эти ошибки ссылаютсяв функцию this.dialog.open (), которую я вызываю, чтобы открыть диалог.Кроме того, тот факт, что я могу воспроизвести его только в своем развернутом коде, затрудняет отладку.

Любая помощь / предложения будут высоко оценены.

1 Ответ

0 голосов
/ 28 февраля 2019

В файле pollyfills.ts отсутствовали файлы pollyfils.

Мне не хватало следующих импортов pollyfill:

  • import 'core-js / es6 / weak-map';
  • import 'core-js / es7 / refle';

Я предполагаю, что в ошибке:

StaticInjectorError (Платформа: core)[e -> function () {this.role = "dialog", this.panelClass = "", this.hasBackdrop =! 0, this.backdropClass = "", this.disableClose =! 1, this.width = "", this.height = "", this.maxWidth = "80vw", this.data = нуль, this.ariaDescribedBy = нуль, this.ariaLabel = нуль, this.autoFocus! = 0, this.restoreFocus! = 0, это.closeOnNavigation =! 0}]:

(Платформа: core) части ссылаются на core-js.Никаких других указаний на то, что это правильно, но диалоги сейчас работают.

Спасибо @yurzui за предложения по устранению ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...