我知道它可以使用 Javascript 通過手動分離插槽元素并將它們放入 DOM 樹中來實作,但我想知道它是否在盒子內受支持。像這樣的東西:
<my-element>
<div slot="items">Item 1</div>
<div slot="items">Item 2</div>
<div slot="items">...</div>
</my-element>
模板應該是這樣的:
<div class="items">
<div class="item"> <!-- Should be 1 item per slot -->
<p>Something else</p>
<slot name="items"></slot>
</div>
</div>
這是否只能slotchange通過 Javascript 使用和填充專案?有沒有更好的解決方案,沒有 Javascript 或更少的 Javascript?也許有一個類似于slot我不知道的元素?
uj5u.com熱心網友回復:
因為只有通過事件才能將所有 slot="items"內容插入,組件作者才能確定發生了什么。<slot name="items">slotchange
注意:您不填充專案,默認插槽機制會;您只能在物品被放入插槽后移除它們;但是您上面的 HTML 需要更多關于需要插入哪個專案的資訊。
那么問題仍然存在,為什么要使用多個slot="items"呢?如果一個插槽可以占用 1 個專案,則只分配 1 個專案
命令式插槽可能會有所幫助:https ://github.com/WICG/webcomponents/blob/gh-pages/proposals/Imperative-Shadow-DOM-Distribution-API.md
更新,我誤解了 OPs 問題
他需要做的就是:
創建另一個 Web 組件:<slotted-item slot="items"></slotted-item>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520015.html
上一篇:帶有連接節點的鏈接的聚集氣泡
