Smokey Dawson
Smokey Dawson

Reputation: 9230

RangeError: Maximum call stack size exceeded Angular 5 Router

Hey I've just tried to set up lazy loading of modules in my application but I'm getting this error I was following a tutorial but obviously they didnt get the same errors

enter image description here

my set up is as follows

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { RouterModule, Routes, ActivatedRoute, ParamMap } from '@angular/router';
import { HttpClientModule } from '@angular/common/http';
import { environment } from '../environments/environment';
import { ServiceWorkerModule } from '@angular/service-worker';
import { OurWorkModule } from './our-work/our-work.module';
import { ourWorkRouting } from './our-work/our-work-routing.module';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { FooterComponent } from './shared/footer/footer.component';
import { WhatWeDoComponent } from './what-we-do/what-we-do.component';
import { HeaderComponent } from './shared/header/header.component';
import { OurProcessComponent } from './our-process/our-process.component';
import { OurTechnologyComponent } from './our-technology/our-technology.component';
import { GetInTouchComponent } from './get-in-touch/get-in-touch.component';

export const ROUTES: Routes = [
   { path: '', component: HomeComponent, pathMatch: 'full' },
   { path: 'what-we-do', component: WhatWeDoComponent},
   { path: 'our-work', loadChildren: 'app/our-work/our-work.module#OurWorkModule' },
   { path: 'our-technology', component: OurTechnologyComponent},
   { path: 'get-in-touch', component: GetInTouchComponent },
   { path: '**', redirectTo: ''}
];

@NgModule({
   declarations: [
      AppComponent,
      HomeComponent,
      FooterComponent,
      WhatWeDoComponent,
      HeaderComponent,
      OurProcessComponent,
      OurTechnologyComponent,
      GetInTouchComponent,
      HeaderHomeComponent,
   ],
  imports: [
     BrowserModule,
     LazyLoadImageModule,
     RouterModule.forRoot(ROUTES),
     FormsModule,
     HttpModule,
     HttpClientModule,
     ourWorkRouting,
     OurWorkModule,
     environment.production ? ServiceWorkerModule.register('/ngsw-worker.js') : [],
  ],
      providers: [EmailService],
      bootstrap: [AppComponent]
  })
  export class AppModule { }

our-work-module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes, ActivatedRoute, ParamMap } from '@angular/router';
import { OurWorkComponent } from './our-work.component';


@NgModule({
    imports: [
        CommonModule,
        RouterModule
    ],
    declarations: [
        OurWorkComponent,

    ]

})
export class OurWorkModule {}

our-work-routing.module.ts

import { Routes, RouterModule } from '@angular/router';
import { OurWorkComponent } from './our-work.component';

const ourWorkRoutes: Routes = [
    { path: '', component: OurWorkComponent }
];

export const ourWorkRouting = RouterModule.forChild(ourWorkRoutes);

this is the first time Ive tried to lazyload a module or set up a feature module so any help would be appreciated!

Thanks

Upvotes: 2

Views: 3382

Answers (1)

Rakesh Chand
Rakesh Chand

Reputation: 3113

Here's how my lazy loaded module looks, hope it helps you

import { NgModule, ApplicationRef, APP_BOOTSTRAP_LISTENER, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { APP_BASE_HREF, CommonModule } from '@angular/common';
import { Http, HttpModule } from "@angular/http";
import { RouterModule } from '@angular/router';
import { FormsModule } from '@angular/forms';

import { OurWorkComponent } from './our-work.component';

@NgModule({
    declarations: [
        OurWorkComponent
    ],
    imports: [
        CommonModule,
        FormsModule,
        HttpModule,
        RouterModule.forChild([
            { path: '', component: OurWorkComponent }
        ])
    ],
    providers : [
        //add services and other providers
    ],
    schemas: [ NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA ]
})

export class FeaturedModule { }

I think you didn't add you ourWorkRouting in your our-work-module.ts

Upvotes: 3

Related Questions