我將稍微簡化一下我的問題,因為我真的想避免添加大量代碼,因為如果我開始添加代碼片段,這是一個我們正在處理的巨大專案,會有很多。
我的專案有一個功能,你在頁面的左欄有一個不同 div 元素的串列,它們可以單獨拖到右欄,在那里你可以按照你選擇的順序從這些元素中創建你自己的串列.
這些 div 元素都是同一個子組件。我的任務是為這些 div 元素添加一個下拉串列,但只添加到已拖到右列的那些元素(一旦它在右列中,您就可以選擇其他首選項)。它不應該出現在左列的 div 上。
區分它們的唯一方法是通過類名。左邊的有一個 ,右邊的有 。
現在我想知道是否有一種方法可以撰寫一些代碼來實作:如果元素具有“左”類,則隱藏下拉串列,否則顯示下拉串列?
uj5u.com熱心網友回復:
是的,這絕對是可能的。
- 創建一個具有
@HostBinding()特定類的指令,然后將該指令添加到每個組件。 - 注入
ChildComponent該指令的建構式。您也可以注入ViewContainerRef然后呼叫this.viewContainerRef["_data"].componentView.component這將為您提供對放置指令的子元素的參考。 - 一旦
@HostBinding('.left')事件處理程式被觸發,這將是添加您要查找的類時呼叫的函式。在這里,您可以訪問它ChildComponent,然后大概呼叫該子組件上的方法來顯示/隱藏 mat-select
我還沒有真正測驗過這個,但這就是我會采取的方法。
uj5u.com熱心網友回復:
您也可以通過 css 實作這一點。就像是
div[class*="left"] dropdown-element {
display: none;
~or~
visibility: hidden;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338618.html
上一篇:標題隨注冊表一起向下移動
