使用Core模块中的组件

时间:2017-02-09 19:56:06

标签: angular

我是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

1 个答案:

答案 0 :(得分:6)

如果您想要其他模块中的内容,请将其放入共享模块(功能模块)中。 CoreModule不是正确的地方。

是的,您需要将模块导入到您要使用该模块中的组件,指令或管道的每个模块。