[英]Angular2 — @ViewChild from TypeScript base abstract class
我正在尋找@ 這個SO Q&A ,並想知道是否有可能有一個基礎abstract class
? 而不是一個interface
,是有可能有在那些經由父組件訪問的子組件的基類的不同的實現@ViewChild
在Angular2裝飾?
理想情況下,我希望有一種方法可以通過父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()
或任何類似的裝飾器來查詢組件的子類。
僅支持模板變量的名稱和具體的組件和指令類型(在視圖中實際實例化為組件的類型)。
是! 這是可能的,我發現在某些情況下它可以更干凈,但對於您的用例,我認為服務是可取的。 請參閱我對有關接口的原始問題的回答。 我也許應該把它貼在這里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.