【问题标题】:Cannot import '@angular/core/src/metadata/ng_module' on Angular 12无法在 Angular 12 上导入“@angular/core/src/metadata/ng_module”
【发布时间】:2021-07-30 11:27:15
【问题描述】:

我目前正在尝试使用 Angular 12 创建登录页面,随后,我无法从 @angular/core/src/metadata/ng_module 导入 ModuleWithProviders。

你能帮帮我吗?我在互联网上搜索但没有找到解决方案,或者现有的解决方案似乎不起作用。

这是代码:

app.routing.ts

import { RouterModule, Routes } from '@angular/router';
import { ModuleWithProviders } from '@angular/core/src/metadata/ng_module';

import { LoginComponent } from './login/login.component';

export const AppRoutes: Routes = [
  { path: '', component: LoginComponent }
];

export const ROUTING: ModuleWithProviders = RouterModule.forRoot(AppRoutes);

【问题讨论】:

  • import { ModuleWithProviders } from '@angular/core';
  • @AviadP。这是一个答案(:去发布它(:
  • 我试过了,但它在这一行给我一个错误 export const ROUTING: ModuleWithProviders = RouterModule.forRoot(AppRoutes);说通用类型“ModuleWithProviders”需要 1 个类型参数。
  • 同意@IAfanasov,但是这个特殊的代码有一种“味道”——通常你不会将模块导出为变量,所以我想要多一点时间思考:)
  • @lulia 你能描述一下你是如何得到那个奇怪的导入路径的吗? VS Code 自动生成了吗?

标签: angular ng-modules


【解决方案1】:

直接回答是:

import { ModuleWithProviders } from '@angular/core';

而且,定义应该有一个类型参数(正如你所注意到的):

export const ROUTING: ModuleWithProviders<RouterModule> = RouterModule.forRoot(AppRoutes);

但是,您做错了 - 在您的情况下,您应该导出路由配置本身 (AppRoutes),并在声明模块的任何位置指定 RouterModule.forRoot(AppRoutes)(通常为 app.module.ts),

-- 或者--

当您执行ng new 并回答“是”进行路由时,您应该定义一个路由模块,就像 Angular cli 为您准备的那样。

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 2019-10-17
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2020-07-29
    • 2018-03-26
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多