Простой шаг навигации, который мне нужно подождать, пока модал не получит шаблон на странице, к которой мы идем.
public onOpenModal(item) {
this.router.navigate([item.link]).then(() => {
this.modal.open('createSpace'); // Error: Uncaught (in promise): Error: Modal not found
});
this.modal.open('createSpace'); // works fine
}
по какой-то причине, когда я вызываю this.modal.open() внутри then(), он блокирует ошибки. Я подозреваю, что проблема в сфере? Есть идеи? если я вызываю modal.open() вне блока then(), это работает, однако мне нужно ждать завершения перехода.
РЕДАКТИРОВАТЬ: Я считаю, что шаблон не полностью загружен... может быть, поэтому, почему Модал не может быть найден... будет иметь смысл.
Есть ли способ действительно ждать, пока шаблон будет готов?
Это странно. Не совсем уверен, почему это проблема в первую очередь. Но не могли бы вы попробовать сделать это и посмотреть, работает ли это:
async onOpenModal(item) {
await this.router.navigate([item.link]);
this.modal.open('createSpace');
}
Вот рабочий образец StackBlitz для вашей ссылки.
ПРИМЕЧАНИЕ. Вы не указали, что это за модал, поэтому в этом примере я использовал модал ngx-bootstrap. Но в твоем случае все должно работать как положено.
this.modal
в этом контексте.