簡體   English   中英

Angular 6 @ContentChildren不查詢擴展組件

[英]Angular 6 @ContentChildren doesn't query extended component

我對ContentChildren裝飾器有疑問。

我想為桌面創建一個控制器用戶界面。 我創建了一些組件來處理控制器輸入(因此,以一個示例為例,起始頁面可能是這樣):

  • ControllerInputWrapperComponent(擴展ControllerContainerComponent)
    • ControllerContainerComponent
      • 面板(擴展ControllerContainerComponent)
      • 面板(擴展ControllerContainerComponent)
    • ControllerContainerComponent
      • 面板(擴展ControllerContainerComponent)
      • 面板(擴展ControllerContainerComponent)
      • 面板(擴展ControllerContainerComponent)
      • DifPanel(擴展ControllerContainerComponent)

ControllerContainerComponent模板如下所示:

<template #host></template> <ng-content></ng-content>

(該模板是通過json模板生成面板的可選選項)

現在,我希望ControllerContainerComponent可以查詢其作為ControllerContainerComponent實例的子級。 如果我將ControllerContainerComponent用作@ComponentChildren裝飾器中的選擇器,則在初始化內容后它將返回一個空列表。

之后,我嘗試查詢確切的類(在本例中為PanelComponent),然后得到了一些結果,但是它們不包括DifPanelComponent之類的組件。

我的問題是:

這是角度問題嗎,還是我做錯了什么?

編輯:

我在stackoverflow上發現了一個類似的問題,但沒有給出我一直在尋找的答案,也不是關於angular的當前版本的: Angular 2-使用@ContentChildren過濾組件的內容

第二次編輯:

這是一個演示我的問題的堆棧閃電戰: https ://stackblitz.com/edit/angular-vfmnd3

您可能需要provide它。 providers:[{provide: ControllerContainerComponent, useExisting:Panel}]然后您就可以對其進行查詢。

暫無
暫無

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

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