Я показываю ряд предметов, на которые вы можете нажать, чтобы перейти к следующему маршруту. Вы также можете щелкнуть всплывающее окно на этой странице. Если вы нажмете на всплывающее окно, а затем щелкните по одному из элементов, которые я хотел бы уничтожить всплывающее окно, прежде чем отображать следующий маршрут.Как закрыть всплывающее окно маршрута перед переходом на следующее место? (Угловой 2)
onSelect(id) {
if (this.router.url.includes('popup')) {
let p = Promise.resolve(() => this.closePopup())
p.then(() => this.router.navigate(['/', id]))
} else {
this.router.navigate(['/', id])
}
}
closePopup() {
this.router.navigate([{outlets: {popup: null}}])
}
Я не очень понимаю, обещания, поэтому я не уверен, что я написал в правильной структуре, но этот код не работает, как он всегда будет перемещаться к следующему маршруту с всплывающим окном еще внутри URL. Я попытался сделать это в той же структуре вне обещания, но он всегда будет переходить к: id с (всплывающим) по-прежнему в URL-адресе.
Я также пробовал: this.router.navigate(['/', id, {outlets: {popup: null}}])
.
Есть ли функция внутри маршрутизатора, которая позволяет абсолютное переписывание URL-адреса? Или есть способ убедиться, что он удалит всплывающее окно с URL-адреса, прежде чем перейти к идентификатору:.
Надежда проблема понятна - помощь очень ценится!