我创建了一个名为commonmod.component.ts的组件,它包含在另外两个模块(abc和def)中.

abc.module.ts

import { commonmod } from '../commonmod/commonmod.component';
@NgModule({
  declarations: [
    commonmod
  ]
})

def.module.ts

import { commonmod } from '../commonmod/commonmod.component';
@NgModule({
  declarations: [
    commonmod
  ]
})

当我将abc模块中的一个页面重定向到def模块中的另一个页面时,它会引发以下错误.

错误:Uncaught(promise 中):错误:类型commonmod是两个模块声明的一部分:abcand def!请考虑将CONMOMOD移动到导入ABC和DEF的更高模块.您还可以创建一个新的NgModule,导出并包含CommonModule,然后将该NgModule导入abcand def.

推荐答案

一个组件只能在一个模块中声明.如果你试图在多个模块中声明它,你会得到这个错误

错误:键入...是2个(或更多)模块声明的一部分:

这个问题的解决方法很简单.如果需要在多个模块中使用一个组件,请将其添加到需要它的模块的exports数组中.

假设我们有一个名为GreetingsComponent的组件,它在模块TestModule中声明,我想在模块AppModule中声明的AppComponent中使用它.我将简单地将其添加到TestModuleexports数组中,如下所示

import {NgModule} from '@angular/core';
import {GreetingComponent} from './greeting.component';
@NgModule({
declarations:[GreetingComponent],
exports:[GreetingComponent]
})
export class TestModule
{
}

现在,as AppModuleimported TestModule,这样一来,TestModule中的exports array中的Components, Directive, Pipes etc将自动可用于AppModule.

应用模块.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import {TestModule} from './test.module';
import { AppComponent } from './app.component';
@NgModule({
  imports:      [ BrowserModule, FormsModule, TestModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

现在,您只需在AppComponent中使用GreetingsComponent

  <greetings></greetings>

这里有StackBlitz人在工作.

干杯

Typescript相关问答推荐

创建一个将任意命名类型映射到其他类型的TypScript通用类型

类型是工作.但它失go 了正确变体的亮点..为什么?或者如何增强?

当类型断言函数返回假时,TypScript正在推断从不类型

JS Redux Devtools扩展不工作

将对象属性转换为InstanceType或原样的强类型方法

有没有办法解决相互影响的路由之间的合并?

如何在LucideAngular 添加自定义图标以及如何使用它们

匿名静态类推断组成不正确推断

如何在方法中正确地传递来自TypeScrip对象的字段子集?

(TypeScript)TypeError:无法读取未定义的属性(正在读取映射)"

如何在省略一个参数的情况下从函数类型中提取参数类型?

有没有办法取消分发元组的联合?

我在Angular 17中的environment.ts文件中得到了一个属性端点错误

复选框Angular 在Ngfor中的其他块中重复

TYPE FOR ARRAY,其中每个泛型元素是单独的键类型对,然后在该数组上循环

创建一个函数,该函数返回一个行为方式与传入函数相同的函数

顶点堆叠的图表条形图未在正确的x轴上显示

两个名称不同的相同打字界面-如何使其干燥/避免重复?

完全在类型系统中构建的东西意味着什么?

类型分布在第一个泛型上,但不分布在第二个泛型上