Я хочу передавать данные между страницами ionic 4

Я хочу передавать данные между страницами ionic 4 без изменения URL-адреса.

Код:

приложение-routing.module.ts

const routes: Routes = [
  { path: '', redirectTo: 'home', pathMatch: 'full' },
  { path: 'home', loadChildren: './home/home.module#HomePageModule' },
  { path: 'detail/:id', loadChildren: './detail/detail.module#DetailPageModule' },
];

дом.тс

nextClicked(){
    this.navCtrl.navigateForward('/detail/' + '11');
  }

деталь.ts

ngOnInit() {
    let output= this.activatedroute.snapshot.paramMap.get('id');
    console.info("data recived is ",JSON.stringify(output))
  }

Полученные данные Выход: равны нулю

Также URL-адрес в браузере меняется на http://локальный:8101/контакт/11

Я хочу, чтобы мой URL-адрес оставался как по умолчанию http://локальный:8101/, возможно ли это в ionic 4?

пожалуйста, помогите и заранее спасибо!

Вы должны использовать декоратор @input для передачи данных

iamrajshah 28.05.2019 08:42

Поскольку я новичок в ionic 4, если могу поделиться кодом, это будет полезно.

Krunal Lathia 28.05.2019 08:47

Он не относится к ионным, он является основным из угловых

iamrajshah 28.05.2019 08:48
medium.com/mr-frontend-community/…
iamrajshah 28.05.2019 08:48

Вы даже можете использовать тему RxJs, проверьте этот блог coding-karma.com/2018/05/06/…

Dan Patil 28.05.2019 11:05
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
5
3 900
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Когда вы выполняете маршрут между страницами, ваш URL-адрес должен измениться. поэтому, если вы не хотите менять свой URL-адрес, единственный способ - скрыть и показать компоненты с помощью флагов. Однако из ionic 4 рекомендуется использовать маршрутизацию Angular вместо контроллера Ionic Nav, этот статья может дать вам представление об этом.

Вы используете API NavController для навигации, но извлекаете данные из API угловой маршрутизации ActivatedRoute. вы должны перемещаться с помощью API Angular Routing, как показано ниже.

import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  ...
})
export class HomeComponent {

  constructor(private router: Router){}

  navigate(){
   this.router.navigate(['/detail', { id: "123" }]);
  }
}

а затем вы можете извлечь с помощью ActivatedRoute API, как показано ниже

let id = this.route.snapshot.paramMap.get('id')

откуда я могу передать свой параметр «id».

Krunal Lathia 28.05.2019 10:57

Обновлен ответ, чтобы отразить ваш комментарий this.router.navigate(['/detail', {id: "123" }]);

Hammad Tariq 29.05.2019 13:32

Передайте свою переменную следующим образом.

constructor(private router: Router){}

sampleFunction(){
   this.router.navigate(['/detail', {id: "11"}]);
}

И на странице, которую вы хотите извлечь, импортируйте все это:

import { NavParams } from '@ionic/angular';
import { Router, ActivatedRoute, Route } from '@angular/router';

Предположим, вы хотите получить эти данные в переменную с именем v1. Возьмите его, используя ActivatedRoute:

this.v1 = this.activatedRoute.snapshot.paramMap.get('id');
console.info(this.v1);

И обязательно импортируйте NavParams и добавьте эти строки в ваши провайдеры в файле app.module.ts:

providers: [NavParams]

Другие вопросы по теме