Angular 2路由显示在模块中分解时不起作用

迈克3355

我收到一条错误消息,说它找不到我的模块。

ERROR in ./src/app/userManagement/userManagement.routing.ts
    Module not found: Error: Can't resolve './unlockUserID/unlockUserId.module' in src/app/userManagement'
     @ ./src/app/userManagement/userManagement.routing.ts 9:43-94

我需要通过这种方式来使其更具模块化,并且它是一个单页应用程序。您喜欢菜单上的内容,它以树状格式出现,当您单击所需的选项卡时,该页面上会呈现一个组件。

src--
     --app
       --userManagement
          --unlockedUserId
            --unlockUserId.component.html
            --unlockUserId.css
            --unlockeUserID.module.ts
            --unlockUser.routing.ts
       --userManagement.module.ts
       --userManagement.routing.ts

在目录中,userManagement/unlockUserId/unlockUserID.Routing.ts我具有以下内容:

import {RouterModule, Routes} from "@angular/router";
import {unlockUserIdcomponent} from "./unlockUserID.component";
import {NgModule} from "@angular/core";

const routes: Routes = [{
    path: '',
    component: unlockUserIdcomponent,
    data: {pageTitle: 'Unlock User Id'}
}];

@NgModule({
    imports: [RouterModule.forChild(routes)],
    exports: [RouterModule],
    providers: []
})
export class UnlockUserIdModule { }

我导入到我的 userManagement/unlockUserId/unlockUserID.module.ts

import {SmartadminModule} from "../../shared/smartadmin.module";
import {CommonModule} from "@angular/common";
import {NgModule} from "@angular/core";

import {unlockUserIdcomponent} from "./unlockUserID.component";


@NgModule({
    imports: [
        CommonModule,
        SmartadminModule,
        UnlockUserIdModule
    ],
    declarations: [unlockUserIdcomponent]
})
export class UnlockUserIdModule { }

然后,父模块和路由模块进入并按如下方式使用:

userManagement/userManagement.routing.ts

import {RouterModule, Routes} from "@angular/router";

export const routes: Routes = [
    {
        path: '', redirectTo: 'unlockUserID', pathMatch: 'full'
    },
    {
        path: 'unlockUserID',
        loadChildren: ()=> System.import('./unlockUserID/unlockUserId.module')
            .then((imports: any)=> imports.UnlockUserIdModule)
    }
];

export const routing = RouterModule.forChild(routes);

何时再次导入 userManagement.module.ts

import {SmartadminModule} from "../shared/smartadmin.module";
import {NgModule} from "@angular/core";
import {routing} from "./userManagement.routing";

@NgModule({

    imports: [
        SmartadminModule,
        routing
    ],
    providers: [],
})
export class UserManagementModule {

}

现在,在应用程序的主路由器中,执行以下操作以将它们链接在一起:

export const routes: Routes = [
    {
        path: '',
        component: MainLayoutComponent,
        data: {pageTitle: 'Home'},
        children: [
            {
                path: '', redirectTo: 'home', pathMatch: 'full'
            },
            {
                path: 'userManagement',
                loadChildren: 'app/userManagement/userManagement.module#UserManagementModule',
                data: {pageTitle: 'UserManagement'}
            },

            {path: 'home', loadChildren: 'app/+home/home.module#HomeModule', data: {pageTitle: 'Home'}},
        ]
    },

    {path: '**', redirectTo: 'home'}

];

export const routing: ModuleWithProviders = RouterModule.forRoot(routes, {useHash: true});

但是我得到一个错误说:

ERROR in ./src/app/userManagement/userManagement.routing.ts
Module not found: Error: Can't resolve './unlockUserID/unlockUserId.module' in src/app/userManagement'
 @ ./src/app/userManagement/userManagement.routing.ts 9:43-94

任何建议将不胜感激。

真正的克劳利

最重要的问题,我看到的是,你有两个UnlockUserIdModule小号

你的路线应该是

import {RouterModule, Routes} from "@angular/router";
import {ModuleWithProviders } from "@angular/core";

import {unlockUserIdcomponent} from "./unlockUserID.component";

const unlockUserRoutes: Routes = [{
    path: '',
    component: unlockUserIdcomponent,
    data: {pageTitle: 'Unlock User Id'}
}];

export const unlockUserRouting: ModuleWithProviders = RouterModule.forChild(unlockUserRoutes);

然后在您的模块中:

import {CommonModule} from "@angular/common";
import {NgModule} from "@angular/core";

import {SmartadminModule} from "../../shared/smartadmin.module";
import {unlockUserIdcomponent} from "./unlockUserID.component";
import { unlockUserRouting } from './unlockUser.routing';


@NgModule({
  imports: [
    CommonModule,
    SmartadminModule,
    unlockUserRouting
  ],
  declarations: [unlockUserIdcomponent]
})
export class UnlockUserIdModule { }

同样,通常,出于可读性考虑,最好按进口来源分组(例如,所有@angular进口在顶部,然后是供应商,然后是代码进口)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章