簡體   English   中英

Angular2 - 來自TypeScript基礎抽象類的@ViewChild

[英]Angular2 — @ViewChild from TypeScript base abstract class

我正在尋找@ 這個SO Q&A ,並想知道是否有可能有一個基礎abstract class 而不是一個interface ,是有可能有在那些經由父組件訪問的子組件的基類的不同的實現@ViewChildAngular2裝飾?

理想情況下,我希望有一種方法可以通過父Router實例化的子組件能夠調用父路由器 - 這有意義嗎? 我希望孩子能夠調用parentRouter.navigate(["SomeOtherRoute", { args: 'blah' }]);

我最初的方法是讓子組件實現一個基類,父組件將通過@ViewChild裝飾器獲得引用。 父級將subscribe試圖調用導航事件的子操作,並且其處理程序將調用router.navigate (因為它具有父級別的路由器)。

它實際上非常簡單。 例如,如果您有一個EmployeeComponent類,它擴展了PersonComponent,它是一個抽象類。

您可以通過在EmployeeComponent中添加它來使其平易近人:

providers: [ {provide: PersonComponent, useExisting: EmployeeComponent }]

並在容器組件中使用ViewChildren()或ContentChildren(),如下所示:

@ViewChildren(PersonComponent) public persons: QueryList<PersonComponent>;

您不能使用@ViewChildren()或任何類似的裝飾器來查詢組件的子類。

僅支持模板變量的名稱和具體的組件和指令類型(在視圖中實際實例化為組件的類型)。

是! 這是可能的,我發現在某些情況下它可以更干凈,但對於您的用例,我認為服務是可取的。 請參閱我對有關接口的原始問題的回答。 我也許應該把它貼在這里。

https://stackoverflow.com/a/41151492/4293638

暫無
暫無

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

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