私は、プライベート コンポーネントの簡単な使用例を考え出そうとしています。HelloWorldAppModule
1 つのパブリック コンポーネントと 1 つのプライベート コンポーネントを含むモジュールがあるとします。
@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>
タグの解析時に angular がエラーをスローするというのは正しいですか?
編集:
また、 only を inside で使用するとどうなりますかUsesHelloWorldComponent
:
@Component({
selector: 'uses-hello-world',
template: `<hello-world></hello-world>`
})
class UsesHelloWorldComponent {
}
テンプレート内で使用することに注意してください<private>
。
Web 上にはプライベート コンポーネントの例があまりないため、コメントをいただければ幸いです。