在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5/ Angular5懶加載問(wèn)題undefined is not a function

Angular5懶加載問(wèn)題undefined is not a function

最近將angular4項(xiàng)目升級(jí)到angular5之后遇到了一個(gè)問(wèn)題,loadChildren對(duì)應(yīng)的路由都無(wú)法跳轉(zhuǎn)
編譯正常,瀏覽器運(yùn)行報(bào)錯(cuò):

core.js:1448 ERROR Error: Uncaught (in promise): TypeError: undefined is not a function
TypeError: undefined is not a function
    at Array.map (<anonymous>)
    at webpackAsyncContext (eval at ./src/$$_lazy_route_resource lazy recursive (main.bundle.js:13), <anonymous>:19:34)
    at SystemJsNgModuleLoader.loadAndCompile (core.js:6558)
    at SystemJsNgModuleLoader.load (core.js:6542)
    at RouterConfigLoader.loadModuleFactory (router.js:4543)
    at RouterConfigLoader.load (router.js:4523)
    at MergeMapSubscriber.eval [as project] (router.js:2015)
    at MergeMapSubscriber._tryNext (mergeMap.js:128)
    at MergeMapSubscriber._next (mergeMap.js:118)
    at MergeMapSubscriber.Subscriber.next (Subscriber.js:92)
    at Array.map (<anonymous>)
    at webpackAsyncContext (eval at ./src/$$_lazy_route_resource lazy recursive (main.bundle.js:13), <anonymous>:19:34)
    at SystemJsNgModuleLoader.loadAndCompile (core.js:6558)
    at SystemJsNgModuleLoader.load (core.js:6542)
    at RouterConfigLoader.loadModuleFactory (router.js:4543)
    at RouterConfigLoader.load (router.js:4523)
    at MergeMapSubscriber.eval [as project] (router.js:2015)
    at MergeMapSubscriber._tryNext (mergeMap.js:128)
    at MergeMapSubscriber._next (mergeMap.js:118)
    at MergeMapSubscriber.Subscriber.next (Subscriber.js:92)
    at resolvePromise (zone.js:809)
    at resolvePromise (zone.js:775)
    at eval (zone.js:858)
    at ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:4740)
    at ZoneDelegate.invokeTask (zone.js:420)
    at Zone.runTask (zone.js:188)
    at drainMicroTaskQueue (zone.js:595)
    at <anonymous>

代碼:

{
  path: 'set',
  loadChildren: 'app/setting/setting.module#SettingModule'
},
// setting.module.ts
@NgModule(
  {
    imports:
      [
        CommonModule,
        FormsModule,
        SettingRouteModule,
        SystemModule,
        PopupModule
      ],
    declarations:
      [
        SettingComponent,
        ScannerHelpComponent
      ],
    exports:
      [],
    providers:
      [],
    entryComponents: [
      ScannerHelpComponent
    ]
  }
)
export class SettingModule
{
}
// setting.route.module.ts
@NgModule({
  imports:
    [
      RouterModule.forChild([
        {
          path: 'set',
          component: SettingComponent
        }
      ])
    ]
})
export class SettingRouteModule
{
}

當(dāng)我把loadChildren注釋掉不用懶加載的時(shí)候,路由就可以跳轉(zhuǎn),這是什么問(wèn)題

回答
編輯回答
舊螢火

已經(jīng)解決,在app.module.ts的imports里面刪除進(jìn)行懶加載的模塊

// 懶加載
{
  path: 'set',
  loadChildren: 'app/setting/setting.module#SettingModule'
},
// app.module.ts
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    FormsModule,
    // 非懶加載模塊
    PopupModule,
    CoreModule,
    PipeModule,
    RoutesModule,
    CashRegisterModule,
    // 懶加載模塊
    // SettingModule
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

同時(shí),在setting.route.module.ts里面path寫(xiě)空:

// setting.route.module.t
@NgModule({
  imports:
    [
      RouterModule.forChild([
        {
          // path: 'set',
          path: '',
          component: SettingComponent
        }
      ])
    ],

  exports:
    [
      RouterModule
    ],

  providers:
    []
})
export class SettingRouteModule
{
}

原來(lái)的寫(xiě)法其實(shí)并沒(méi)有實(shí)現(xiàn)懶加載,但是angular4不是出錯(cuò),但是在angular5就會(huì)提示懶加載的錯(cuò)誤

2017年8月29日 10:54
編輯回答
安若晴

我也遇到了 那你解決了嗎?

2018年3月28日 01:30
編輯回答
檸檬藍(lán)

我也遇到同樣的錯(cuò)誤,有可能是你沒(méi)引入RouterModule模塊(@angular/router下)?;蛘咧苯又匦耼pm install一下,把模塊重新下一遍

2017年8月4日 17:37