У меня проблема с маршрутизацией. Я нахожусь в компоненте блока, добавляющем новый блок в мою базу данных. URL выглядит следующим образом:
http://localhost:4200/dashboard/registration/unit
Когда вставка в мою базу данных прошла успешно, идентификатор отправляется обратно из PHP в метод .subscribe()
:
.subscribe(
(data)=>{
console.log(data);
//this.router.navigate(['unit/addH/'+data]);
},
(error)=>{
console.log(error);
}
)
Мне нужно перенаправить в другой компонент напрямую, передав идентификатор, возвращенный мне через URL:
.subscribe(
(data)=>{
console.log(data);
this.router.navigate(['unit/addH/'+data]);
},
(error)=>{
console.log(error);
}
)
Итак, данные доступны на консоли, но при перенаправлении меня перенаправили на начальный компонент, поскольку путь не распознан.
Вот пути маршрутизации:
const routes: Routes = [
{
path: '',
component: RegistrationComponent
},
{
path: 'unit',
component: UnitComponent
},
{
path: 'unit/:unit_id',
component: UnitEditComponent
},
{
path: 'unit/addH/:uid',
component: AddHComponent
},
{
path: '**',
redirectTo: 'registration',
pathMatch: 'full'
}
];
Я пытался использовать queryParams
:
this.router.navigate(['unit/addH', {queryParams: {unit_id: data}}]);
Но все равно перенаправить на `компонент регистрации.
Обратите внимание, что в консоли нет ошибок.
На вкладке сети:
EDIT
Полный скрипт маршрутизации:
Первый модуль маршрутизации (родительский):
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { ForgotPasswordComponent } from './forgot-password/forgot-password.component';
import { AuthGuardService } from './auth-guard.service';
const routes: Routes = [
{
path: 'login',
component: LoginComponent
},
{
path:'',
component: LoginComponent
},
{
path: 'forgot',
component: ForgotPasswordComponent
//canActivate: [AuthGuardService]
},
{
path:'dashboard',
loadChildren: '../app/dashboard/dashboard.module#DashboardModule'
},
{
path: '**',
redirectTo: 'login',
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Модуль панели приборов:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DashboardComponent } from './dashboard.component';
import { HomeComponent } from './home/home.component';
const routes: Routes = [
{
path:'',
component: DashboardComponent,
children: [
{
path:'',
component: HomeComponent
},
{
path: 'home',
loadChildren: './main-navbar/main-navbar.module#MainNavbarModule'
},
{
path: 'registration',
loadChildren: './registration/registration.module#RegistrationModule'
}
]
},
{
path:'**',
redirectTo: 'dashboard',
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class DashboardRoutingModule { }
Модуль регистрации:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { RegistrationComponent } from './registration.component';
import { UnitComponent } from './unit/unit.component';
import { UnitEditComponent } from './unit/unit-edit/unit-edit.component';
import { AddHouseholdComponent } from './unit/add-household/add-household.component';
const routes: Routes = [
{
path: '',
component: RegistrationComponent
},
{
path: 'unit',
component: UnitComponent
},
{
path: 'unit/:unit_id',
component: UnitEditComponent
},
{
path: 'unit/addH/:uid',
component: AddHouseholdComponent
},
{
path: '**',
redirectTo: 'registration',
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class RegistrationRoutingModule { }
Я перенаправлен на компонент входа в систему.