Угловой резолвер не работает с шаблоном вкладок Ionic v4 - PullRequest
0 голосов
/ 06 декабря 2018

Используя шаблон вкладок Ionic v4 и angular 7.0, я пытаюсь использовать распознаватель для загрузки данных для страницы перед ее отображением.В app-routing.module.ts ниже преобразователь работает для пути 'login', но не для пути ''.

Итак, дляНапример, если я захожу на базовую страницу моего приложения (т. е. http://localhost:8101),, то загружается TabsPageModule, а затем я перенаправляюсь в '/ tabs / (home: home)'. После загрузки этой страницы данные TestResolverService должныбыть доступным через ActivatedRoute, но это не так.

app-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { TestResolverService } from './resolvers/test- 
resolver.service';

const routes: Routes = [
  {
      path: '',
      resolve: {
          message: TestResolverService
      },
      loadChildren: './tabs/tabs.module#TabsPageModule'
  },
  {
      path: 'login',
      resolve: {
          message: TestResolverService
      },
      loadChildren: './pages/login/login.module#LoginPageModule'
  }
];
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  providers: [TestResolverService]
})
export class AppRoutingModule {}

tabs.router.module.ts

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';
import { HomePage } from '../home/home.page';

const routes: Routes = [
  {
    path: 'tabs',
    component: TabsPage,
    children: [
      {
        path: '',
        redirectTo: '/tabs/(home:home)',
        pathMatch: 'full',
      },
      {
        path: 'home',
        outlet: 'home',
        component: HomePage
      }
    ]
  },
  {
    path: '',
    redirectTo: '/tabs/(home:home)',
    pathMatch: 'full'
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class TabsPageRoutingModule {}

Итак, мой вопрос: как я могу сделать данные распознавателя (TestResolverService) доступными на странице, на которую перенаправляется пользователь (из '' в '/ tabs / (home: home)?')?

Обновление Я потратил на это больше времени и понял, что любые значения, прошедшие через распознаватель, не сохраняются при перенаправлении маршрута. Поэтому в этом случае TestResolverService был доступен настраница входа (без перенаправления), но не на корневой странице (''), поскольку это приводит к перенаправлению на '/ tabs / (home: home) '.

Решение состоит в том, чтобы вместо этого хранить данные в Event или BehaviorSubject.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...