如何在angular2的子模块组件中使用父模块组件
我有应该在子模块和父模块中使用的标题。该标题已导入并在父模块中使用,但当尝试导入并在子组件中使用时,它显示错误。我的意思是如何为父模块和子模块使用公共标题 未捕获(承诺中):错误: 类型标头组件是 两个模块的声明:AppModule和ProviderModule!请 考虑将HealE元部件移动到导入的更高模块 AppModule和ProviderModule 您还可以创建一个新的NgModule,该模块导出并包含 HeaderComponent然后在AppModule中导入该NgModule,然后 前表皮模块如何在angular2的子模块组件中使用父模块组件,angular,components,angular2-template,Angular,Components,Angular2 Template,我有应该在子模块和父模块中使用的标题。该标题已导入并在父模块中使用,但当尝试导入并在子组件中使用时,它显示错误。我的意思是如何为父模块和子模块使用公共标题 未捕获(承诺中):错误: 类型标头组件是 两个模块的声明:AppModule和ProviderModule!请 考虑将HealE元部件移动到导入的更高模块 AppModule和ProviderModule 您还可以创建一个新的NgModule,该模块导出并包含 HeaderComponent然后在AppModule中导入该NgModule,然
如果您可以共享代码和指定的错误,那就太好了 根据我的理解,您基本上希望将一些数据从父组件传递到其子组件 为此,您需要使用@Input将父参数传递给子参数
让我知道,如果有帮助或没有帮助您应该使用您想要使用的组件创建一个共享模块,导出这些组件,然后在您的其他模块中导入共享模块(您的案例的父模块和子模块) 共享模块:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedComponent1 } from "./SharedComponent1";
import { SharedComponent2 } from "./SharedComponent2";
@NgModule({
imports: [
CommonModule
],
declarations: [
SharedComponent1,
SharedComponent2
],
exports: [
SharedComponent1,
SharedComponent2
]
})
export class SharedModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
...
import { SharedModule } from './SharedModule';
@NgModule({
imports: [
CommonModule,
...
SharedModule
],
declarations: [
...
],
providers: [
...
]
})
export class AppModule{}
使用共享模块:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedComponent1 } from "./SharedComponent1";
import { SharedComponent2 } from "./SharedComponent2";
@NgModule({
imports: [
CommonModule
],
declarations: [
SharedComponent1,
SharedComponent2
],
exports: [
SharedComponent1,
SharedComponent2
]
})
export class SharedModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
...
import { SharedModule } from './SharedModule';
@NgModule({
imports: [
CommonModule,
...
SharedModule
],
declarations: [
...
],
providers: [
...
]
})
export class AppModule{}
我已经修改了他的答案
您应该导出要在子模块中使用的父模块的组件。然后在子模块中导入父模块
父模块(导出共享组件):
子模块(导入父模块):
什么类型的错误?
组件是2个模块声明的一部分
?是未捕获(承诺):错误:类型头组件是2个模块声明的一部分:AppModule和ProviderModule!请考虑将HealE元器件移动到导入AppMead和PosivMead模块的更高模块中。您还可以创建一个新的NgModule,该模块导出并包含HeaderComponent,然后在AppModule和ProviderModule中导入该NgModule。编辑:错误消息添加回问题中,以确保可读性谢谢。我的意思是如何为子模块和父模块使用公共标头。它描述了父组件和子组件。但我需要模块Interaction基本上您希望如果父模块中的某些头更改,那么它将自动开始在子模块中反映?感谢您的努力。是的,我尝试在子模块中导入该父模块。它显示错误。它不接受事件发射器可能是您要找的。答案离题了。这是角误差信息建议的第二种解决方案。由于第一个解决方案是在更高的模块中共享组件,导入其他两个模块共享使用该组件。。。我们期望在父模块或子模块中直接导入,而不是调用第三个模块的奇怪计数器。错误消息表明我们有一个不必要的导入,所以我们必须删除一些行,而不是添加整个模块。我认为这是一个角度缺陷,这使我想避免使用父模块和子模块,而只使用常规模块,以便我可以导入任何我需要的。父子模块到底有什么意义?路由?无论如何,我们应该有单独的模块进行路由。即便如此,将模块结构耦合到路由结构似乎是个坏主意。你不能重复使用任何东西。这个答案正是我使用“初学者包”构建模块所需要的方法。我做了一个共享模块来导出我的页眉和页脚组件,所以在我所有的子组件模块中,我可以只导入这个模块。