Невозможно прочитать свойство '' из неопределенного - PullRequest
0 голосов
/ 10 марта 2020

В настоящее время я пытаюсь загрузить модальное после выполнения loadModalDialog. Я пытаюсь назвать это в следующем разделе. Я получаю ошибку

Cannot read property 'dialog' of undefined

Если я вызываю следующим образом, я не получаю вышеуказанную ошибку, но получаю ошибку, связанную с зависимостью в userservice, так как loadModalDialog инициирует вызов компонента соглашения, который смотрит на значение от выполнения userService. Следовательно, я должен убедиться, что this.loadModalDialog () должен быть вызван после выполнения userService. Нужно ли передавать экземпляр this.dialog в функцию loadModalDialog?

  this.userService.load();
  this.loadModalDialog();

Component

constructor( public dialog: ModalDialogService ) {

    export class AppComponent implements OnDestroy {
      this.userService.load().then(this.loadModalDialog);
      }));
     }

    private loadModalDialog() {
    const ref = this.dialog.open(AgreementComponent, {
      // size: 'large'
    });
    ref.afterClosed.subscribe(result => {
      console.log('3rd dialog closed', result);
    });
  }

1 Ответ

0 голосов
/ 10 марта 2020

Вы отбрасываете контекст this, когда передаете свою функцию в оператор .then.

Ваше сообщение об ошибке - красный флаг, который this не то, что вы думаете this должно быть. Это должно быть просто, как .bind(this) для вашей функции this.loadModalDialog.

this.userService.load().then(this.loadModalDialog.bind(this));

или

this.userService.load().then(() => this.loadModalDialog());

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