2

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

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

1 回答 1

3

我认为这可能会有所帮助:

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)
      }
}

除非您渲染插槽元素,否则您无法分配插槽的节点。这就是为什么首先你需要渲染它。之后有很多方法可以隐藏它。另一种方法是在它的父母处检测它并将插槽元素的 nr 作为属性传递。

演示

于 2019-04-17T13:34:26.440 回答