I'm trying to get multiple parameters of root page of my Angular 2 application. I want to get param1, param2 ... of path like "http://example.com/param1/param2/.." in my HomeComponent. For example, the path may seem like: "http://example.com/telephones/accessories/cases" But i can get only the first parameter.
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule) },
{ path: ':a', loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule) },
{ path: ':a/:b', loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule) },
{ path: '**', redirectTo: '', pathMatch: 'full' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
home-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home.component';
const routes: Routes = [
{ path: '', component: HomeComponent },
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class HomeRoutingModule { }
home.component.ts
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css'],
})
export class HomeComponent implements OnInit
{
id1:any;
id2:any;
constructor(private activateRoute: ActivatedRoute,){}
ngOnInit() {
this.id1 = this.activateRoute.snapshot.params['a'];
console.log("id1 - "+this.id1);
this.id2 = this.activateRoute.snapshot.params['b'];
console.log("id2 - "+this.id2);
};
}
On http://localhost:4200/param1 it works, but http://localhost:4200/param1/param2 is not, i'm getting error:
GET http://localhost:4200/param1/runtime.js net::ERR_ABORTED 404 (Not Found)
I've try another way like this:
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule) },
{ path: '**', redirectTo: '', pathMatch: 'full' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
home-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home.component';
const routes: Routes = [
{ path: '', component: HomeComponent, pathMatch: 'full' },
{ path: ':a', component: HomeComponent, pathMatch: 'full' },
{ path: ':a/:b', component: HomeComponent, pathMatch: 'full' },
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class HomeRoutingModule { }
with absolutely the same result.
Please, advise how can i resolve my problem?