Есть ли способ отправить данные в качестве параметра с router.navigate? Я имею в виду, что-то вроде этого примера, как вы можете видеть, что у маршрута есть параметр данных, но при этом он не работает:
this.router.navigate(["heroes"], {some-data: "othrData"})
потому что некоторые данные не являются допустимым параметром. Как я могу это сделать? Я не хочу отправлять параметр с queryParams.
angular
routing
angular-router
Motomine
источник
источник
Ответы:
В этой теме много путаницы, потому что есть много разных способов сделать это.
Вот соответствующие типы, используемые на следующих снимках экрана:
1) Обязательные параметры маршрутизации:
2) Маршрут Необязательные параметры:
3) Параметры запроса маршрута:
4) Вы можете использовать сервис для передачи данных из одного компонента в другой без использования параметров маршрута вообще.
Для примера см .: https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
У меня есть плункер этого здесь: https://plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview
источник
route
тип естьActivatedRoute
, а неRouter
.В Angular 7.2.0 появился новый метод
https://angular.io/api/router/NavigationExtras#state
Послать:
Вы хотите получать:
Вы можете найти дополнительную информацию здесь:
https://github.com/angular/angular/pull/27198
Ссылка выше содержит этот пример, что может быть полезно: https://stackblitz.com/edit/angular-bupuzn
источник
ngOnInit()
видеthis.router.getCurrentNavigation().extras
В последней версии angular (7.2+) теперь есть возможность передавать дополнительную информацию с помощью NavigationExtras .
Домашний компонент
newComponent
Вывод
Надеюсь, это поможет!
источник
@ dev-nish Ваш код работает с небольшими изменениями. сделать
в
затем, если вы хотите специально отправить тип данных, например, JSON, в результате заполнения формы, вы можете отправить данные так же, как описано выше.
источник
В navigateExtra мы можем передать только какое-то конкретное имя в качестве аргумента, в противном случае он показывает ошибку, как показано ниже: Например, здесь я хочу передать ключ клиента в роутере, и я передаю вот так:
но он показывает некоторую ошибку, как показано ниже:
,
Решение: мы должны написать так:
источник
Лучшее, что я нашел в интернете, это ngx-navigation-with-data . Это очень просто и хорошо для навигации данных от одного компонента к другому компоненту. Вы должны просто импортировать класс компонента и использовать его очень простым способом. Предположим, у вас есть дом и о компоненте, и вы хотите отправить данные тогда
ДОМАШНИЙ КОМПОНЕНТ
О КОМПОНЕНТЕ
Для любого запроса следуйте https://www.npmjs.com/package/ngx-navigation-with-data
Комментарий за помощь.
источник