我是Angular2新手,我在移植模块时遇到了一些困难。
根据官方风格指南CoreModule是:
CoreModule - 在应用启动时导入一次,而不会在其他地方导入。
这是否意味着所有从Core模块导出的内容只能在仅导入它的模块中使用?在某些子模块中没有办法提供这些东西吗?我创建了虚拟项目来测试这种行为:
虚拟组件:
@Component({
selector: 'dummy-component',
template: '<h4>Dummy component</h4>',
})
export class DummyComponent {}
核心模块:
import { DummyComponent } from './dummy.component';
@NgModule({
declarations : [DummyComponent],
exports : [DummyComponent]
})
export class CoreModule {}
App模块(根模块):
@NgModule({
declarations: [AppComponent,],
imports: [BrowserModule, CoreModule, HomeModule, RoutingModule],
exports : [CoreModule],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Home模块声明主页组件:
@Component({
selector: 'home-component',
template:
`
<h2>Home component</h2>
<dummy-component></dummy-component>
`
})
export class HomeComponent {}
当我尝试运行此代码时出现此错误:
'dummy-component' is not a known element
答案 0 :(得分:6)
如果您想要其他模块中的内容,请将其放入共享模块(功能模块)中。 CoreModule不是正确的地方。
是的,您需要将模块导入到您要使用该模块中的组件,指令或管道的每个模块。