Мини объект с маршрутом ионной 4 - PullRequest
0 голосов
/ 09 января 2019

Я новичок в IONIC 4 и хочу передать объект с одного экрана на другой. Мой первый экран - screen1, и я хочу передать объект «модель» типа «любой» с экрана1 на экран2.

В настоящее время я перемещаюсь с моего экрана1 на экран2, используя приведенный ниже код.

this.router.navigateByUrl ( 'screen2 /');

Как мне пройти "модельный" объект по этому маршруту?

Я искал в Google решение, но не нашел ничего связанного с моим вопросом. Я только нашел одну вещь, что мы можем передавать данные с помощью URL с помощью queryparams, но я хочу сохранить конфиденциальность данных и не хочу показывать данные в URL.

Кто-нибудь знает, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Вы можете просто сделать это, используя навигацию маршрутизатора

    this.router.navigate(['screen2', {modelName: model}]);

и получите по ActivatedRoute

    this.activatedRoute.snapshot.paramMap.get('modelName');
0 голосов
/ 09 января 2019

Я предлагаю вам внедрить resolver

Взгляните на мой ДЕМО на StackBlitz, чтобы увидеть его в действии

Реализация резольвера:

@Injectable()
class TeamResolver implements Resolve<Team> {
  constructor(private myService: MyService) {}

  resolve(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ): Observable<any>|Promise<any>|any {
    // return the data you need in your component using your service 
    // route params will sit in - route.params.id
  }
}

Объявление:

@NgModule({
  imports: [
    RouterModule.forRoot([
      {
        path: 'team/:id',
        component: TeamCmp,
        resolve: {
          team: TeamResolver
        }
      }
    ])
  ],
  providers: [TeamResolver]
})
class AppModule {}

Используя его:

@Component({
  ...
})
export class TeamCmp {
  constructor(private activatedRoute: ActivatedRoute) {
    // the data sits here - this.activatedRoute.snapshot.data;
  }
}
...