Я хочу передавать данные между страницами ионных 4 - PullRequest
0 голосов
/ 28 мая 2019

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

Код:

app-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' },
];

home.ts

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

detail.ts

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

Выход: полученные данные являются нулевыми

Кроме того, URL-адрес в браузере меняется на http://localhost:8101/contact/11

Я хочу, чтобы мой URL оставался по умолчанию http://localhost:8101/ Возможно ли это в ionic 4?

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

1 Ответ

0 голосов
/ 28 мая 2019

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

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

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...