lit-html 中 slot 没有子节点时执行某些操作

fer*_*sik 4 lit-element lit-html

我想在插槽上没有内容时显示文本。

class List extends LitElement {
  public render() {
    return slot.length === 0 
      ? html`No content is available`
      : html`<slot></slot>`;
  }
}
Run Code Online (Sandbox Code Playgroud)

Hak*_*anC 5

我认为这可能有帮助:

render() {
   return html` <slot id="slot">No content is available</slot> 

`;}

firstUpdated(){
      const slot = this.shadowRoot.querySelector("#slot");
      this.slt = slot.assignedNodes();
      if (this.slt.length===0){
        console.log('No content is available')
      } else {
        console.log('Content available', this.slt)
      }
}
Run Code Online (Sandbox Code Playgroud)

除非渲染槽元素,否则不能对分配的节点进行槽。这就是为什么首先需要渲染它。之后有很多方法可以隐藏它。另一种方法是在其父级处扣除它,并将槽元素的编号作为属性传递。

演示