Я новичок в угловом 4. У меня есть несколько вкладок на одной странице, когда я переключаюсь с одной вкладки на другую или на другую панель навигации, мое требование - предоставить всплывающее диалоговое окно, в котором говорилось: "Вы уверены, что хотите переместиться?". и когда я нажимаю ok, он должен перейти к желаемой вкладке /nav (последний щелчок url), иначе он должен оставаться на той же странице.
Я использовал CanDeactivateGuard, чтобы открыть диалоговое окно, прежде чем покинуть вкладку/переключатель на другую панель навигации { path: 'exception/:id', component: LpExceptionComponent, canDeactivate: [CanDeactivateGuard]}
Теперь я не уверен, как перенаправить на желаемую вкладку, нажав кнопку ОК? как я получу последний щелкнутый URL здесь?
Вам, вероятно, даже не нужно знать URL. Вы можете просто вернуть обещание функции canDeactivate, и как только пользователь наберет ОК, вы решите обещание true, и переход продолжится автоматически. Наблюдаемые также поддерживаются, если вы предпочитаете эти обещания.
Но если вам нужно знать состояние, к которому пользователь пытается перейти, то он предоставляет в качестве четвертого параметра функцию canDeactivate (первые три параметра являются компонентами, currentRoute и currentState)
См. Документацию здесь: https://angular.io/api/router/CanDeactivate