不能重新声明块范围变量'AppRoutes'。

问题描述 投票:0回答:2

我试图实现我的angular应用路由分成3个清晰的部分。

  1. App-Router Module => 让它加载app scope模块的路由。(目前我有1个scope为 "setup-config")
  2. 让Scope-Module负责功能模块。(目前我有2个功能模块)

  3. 让功能模块来处理它自己的功能组件。

为了清晰和可扩展性,我正试图实现这个目标。"Cannot redeclare block-scoped variable 'AppRoutes'."

如果我尝试的方式是错误的,任何人都可以帮助我解决这个问题吗?

这里是现场演示

angular angular-routing angular-router angular9
2个回答
1
投票

你有 AppRoutes 在您的文件中声明了两次。您可能应该将其中一个声明命名为 appRoutes:

const appRoutes: Routes = [{
  path:"",
  pathMatch:"full",
  loadChildren:() => import('./setup-config/setup-config.module').then(m => m.ScopeModule)
}]

@NgModule({
  declarations: [],
  imports: [
    CommonModule,
    ScopeModule,
    RouterModule.forRoot(appRoutes, { 
      scrollPositionRestoration: 'enabled',
      useHash: true
    })
  ],
  exports: []
})
export class AppRoutes {}

工作栈突击

带路由的工作型


1
投票

在你 app.routes.ts 文件,你有 AppRoutes 名为 Routes 阵列 和你的类的名字放在同一个文件中。. 考虑重新命名 Routes 阵列。

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { CommonModule } from '@angular/common';
import { ScopeModule } from './setup-config/setup-config.module';

const AppRoutes: Routes = [ // This is called AppRoutes

 {
    path:"",
    pathMatch:"full",
    loadChildren:() => import('./setup-config/setup-config.module').then(m => m.ScopeModule)
  }

]

@NgModule({
    declarations: [],
    imports: [
        CommonModule,
        ScopeModule,
        RouterModule.forRoot(AppRoutes, { 
          scrollPositionRestoration: 'enabled',
          useHash: true
        })
    ],
    exports: []
})
export class AppRoutes { } // This is **also** called AppRoutes
© www.soinside.com 2019 - 2024. All rights reserved.