Как получить URL только что нажал, прежде чем подтвердить, что всплывающее окно появляется в угловых 4

1

Я новичок в угловом 4. У меня есть несколько вкладок на одной странице, когда я переключаюсь с одной вкладки на другую или на другую панель навигации, мое требование - предоставить всплывающее диалоговое окно, в котором говорилось: "Вы уверены, что хотите переместиться?". и когда я нажимаю ok, он должен перейти к желаемой вкладке /nav (последний щелчок url), иначе он должен оставаться на той же странице.

Я использовал CanDeactivateGuard, чтобы открыть диалоговое окно, прежде чем покинуть вкладку/переключатель на другую панель навигации { path: 'exception/:id', component: LpExceptionComponent, canDeactivate: [CanDeactivateGuard]}

Теперь я не уверен, как перенаправить на желаемую вкладку, нажав кнопку ОК? как я получу последний щелкнутый URL здесь?

  • 0
    У вас есть вкладки в роутере. Если так, я дам вам решение к завтрашнему дню, потому что я их реализовал. Пожалуйста, ответьте на этот комментарий, чтобы я не забыл :) :)
  • 0
    Да, вкладки находятся в маршрутизаторе. Я использовал функцию canDeactivate и мог также вызывать nextStateUrl в новом диалоге, но после нажатия на кнопку «ОК» этого диалогового окна не смог перейти к nextStateUrl. не уверен, почему это не работает.
Теги:
angular
angular-ui-router

1 ответ

1

Вам, вероятно, даже не нужно знать URL. Вы можете просто вернуть обещание функции canDeactivate, и как только пользователь наберет ОК, вы решите обещание true, и переход продолжится автоматически. Наблюдаемые также поддерживаются, если вы предпочитаете эти обещания.

Но если вам нужно знать состояние, к которому пользователь пытается перейти, то он предоставляет в качестве четвертого параметра функцию canDeactivate (первые три параметра являются компонентами, currentRoute и currentState)

См. Документацию здесь: https://angular.io/api/router/CanDeactivate

  • 0
    Спасибо Николай! Я использовал четвертый параметр функции canDeactivate и смог получить состояние, которое пользователь пытается перейти, но не может перейти по этому URL-адресу, нажав кнопку ОК. Просто не уверен, почему навигация маршрутизатора не работает только в этом диалоге

Ещё вопросы

Сообщество Overcoder
Наверх
Меню