Используя шаблон вкладок 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.