簡體   English   中英

專用組件的用例

[英]Use case for private components

我正在嘗試為私有組件提出一個簡單的用例,並在這里找到它。 假設我有一個帶有一個公共和一個私有組件的模塊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 {
}

但是,我還使用了未導出的HelloWorldAppModule中的<private>組件。 那么會發生什么呢? 我是否正確,在解析<private></private>標記時angular會拋出錯誤?

編輯:

另外,如果僅在UsesHelloWorldComponent內部使用,將會發生什么:

@Component({
    selector: 'uses-hello-world',
    template: `<hello-world></hello-world>`
})
class UsesHelloWorldComponent {
}

請注意,它在模板內使用<private>

感謝任何評論,因為網絡上沒有太多私有組件的示例。

<private></private>應該導致有關缺少CUSTOM_ELEMENTS_SCHEMA的錯誤。 如果您證明CUSTOM_ELEMENTS_SCHEMA能夠使用不是Angular組件的自定義標簽,那么您將不會得到錯誤,除非您還添加了<private [prop]="value">類的綁定,這將導致錯誤,因為<private>不是PrivateComponent則不會具有prop屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM