我有一個複雜的場景,我需要幫助。獲取組件樹中某個類型的所有指令的引用
我有一個指令(稱爲TagDirective
),放在我的應用程序上的多個元素。我有另一個指令(QueryDirective
),它需要引用存在於其主機元素上的所有TagDirective
實例以及層次結構中所有上面的元素。
實施例:
<div appTag="a">
<div appTag="b">
<div appTag="c">
<div appTag="d">
<div appQuery>
<!-- In here I want to have a reference to TagDirectives instances
d,c,b,a -->
</div>
</div>
</div>
<div appTag="e">
<div appTag="f">
<div appTag="g">
<div appTag="h">
<div appQuery>
<!-- In here I want to have a reference to TagDirectives instances
h,g,f,e,b,a -->
</div>
</div>
</div>
<div appQuery>
<!-- In here I want to have a reference to TagDirectives instances
f,e,b,a -->
</div>
</div>
</div>
</div>
</div>
我知道可以單獨由具有噴射器中的QueryDirective
構造提供它獲取主機元件上的參考TagDirective
,我也知道我能得到下一個更高的實例通過注入ViewContainerRef
並使用其parentInjector
成員請求TagDirective
類型的實例。
但是,我還沒有找到一種方法去進一步樹,並收集所有的實例一直到根。
我該怎麼做到這一點?謝謝!
我會這樣做一個服務(在provider指令中聲明)。但實際上我對你的問題並不滿意,這對我來說有點不清楚。 – n00dl3
@ n00dl3這意味着該服務將鏡像組件樹結構。我不認爲我想走那麼遠,我的意思是,樹結構已經存在,我只需要找到一種方法來查詢它。你能否試着在問題中明確說明需要澄清的內容? –
解釋爲什麼你想這樣做會有所幫助。 – estus