我正在尝试为私有组件提出一个简单的用例,并在这里。假设我有HelloWorldAppModule
一个包含一个公共组件和一个私有组件的模块:
@Component({
selector: 'hello-world',
template: `
<div>
<private></private>
</div>`
})
class HelloWorldComponent {
}
@Component({
selector: 'private',
template: `<span>I am private</span>`
})
class PrivateComponent {
}
@NgModule({
declarations: [HelloWorldComponent, PrivateComponent],
exports: [HelloWorldComponent]
})
class HelloWorldAppModule {
}
正如你所看到的,这个模块只导出HelloWorldComponent
,但是,在使用的模板HelloWorldComponent
内部PrivateComponent
。这应该可以正常工作,因为这两个组件都在declarations
.
然后,我创建了另一个UsesHelloWorldModule
导入的模块,HelloWorldAppModule
因此,据我所知,我可以在注册的指令模板中使用它导出的组件HelloWorldAppModule
。所以这里是:
@Component({
selector: 'uses-hello-world',
template: `<hello-world></hello-world><private></private>`
})
class UsesHelloWorldComponent {
}
@NgModule({
imports: [HelloWorldAppModule],
declarations: [UsesHelloWorldComponent],
})
class UsesHelloWorldModule {
}
但是,我也使用了未导出<private>
的组件。HelloWorldAppModule
那么会发生什么?<private></private>
解析标签时,角度会引发错误,我对吗?
编辑:
另外,如果只在里面使用会发生什么UsesHelloWorldComponent
:
@Component({
selector: 'uses-hello-world',
template: `<hello-world></hello-world>`
})
class UsesHelloWorldComponent {
}
请注意,它<private>
在其模板中使用。
感谢任何评论,因为网络上没有太多私有组件的示例。