我很难让模块在 Angular 2 中工作。
我创造了a plunk http://plnkr.co/edit/gJup4zH7v4CoFNC8k5kZ?p=preview这说明了问题所在。
在 plunk 中,您会看到我有 app.module。该模块导入 app-common.module,其中包含一个用于显示页眉的组件。顶级组件的模板 app.component 包含该组件的选择器。
这是app.common.module:
@NgModule({
imports:[CommonModule, FormsModule],
declarations: [PageHeaderComponent]
})
export class AppCommonModule { }
这是应用程序模块:
@NgModule({
imports: [AppCommonModule, BrowserModule],
declarations: [AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
当应用程序运行时,它会抛出“ref-pageheader”不是已知元素的错误。如果我在 app.module 中声明该组件,它就可以正常工作。
那么,为什么我不能在导入到主 app.module 的模块中声明此组件?完成此操作后,Angular 似乎无法找到它。我究竟做错了什么?我错过了什么吗?
我想你应该像这样导出它:
@NgModule({
imports:[CommonModule, FormsModule],
declarations: [PageHeaderComponent],
exports: [PageHeaderComponent]
})
export class AppCommonModule { }
这样其他组件就可以使用该组件。
否则PageHeaderComponent
只能在以下范围内使用AppCommonModule
也可以看看
- https://angular.io/docs/ts/latest/guide/ngmodule.html#add-the-接触模块 https://angular.io/docs/ts/latest/guide/ngmodule.html#add-the-_contactmodule_
我们导出 ContactComponent,以便其他导入该组件的模块
ContactModule 可以将其包含在其组件模板中。
默认情况下,所有其他声明的接触类都是私有的
- https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-what-to-export https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-what-to-export
导出其他模块中的组件应声明的类
能够在他们的模板中引用。这些是你的公开课。
如果您不导出某个类,它将保持私有状态,仅对其他人可见
在此模块中声明的组件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)