在聚合物中使用条件槽

Using Conditional slot in polymer

我在 polymer 3 es6 中构建了一个 material 设计卡片元素,并且希望在属性设置为 true 时仅具有 <slot> 标签。 这是我的js代码:

export class ACard extends PolymerElement {
  static get is() { return 'a-card' }
  static get template() { return `


<div class="card">
  <script>
      if ([[media]]) {
          <div class$="card-image">
            <slot name="image"></slot>
          </div>
      };
  </script>
  <div class="card-stacked">
    <div class="card-content">
      <slot name="title" class="card-title"></slot>
      <slot name="text"></slot>
    </div>
    <div class$="card-action">
      <slot name="action-link"></slot>
    </div>
  </div>
</div>`


  }
  constructor() {
    super();
  }
  static get properties() {
    return {
      media: {
        type: Boolean
      }
    }

  }
}

customElements.define(ACard.is, ACard)

这是我的index.html:

<a-card media="true">
  <img slot="image" src="">
</a-card>

所以当media属性设置为true card-image div并且里面的slot被返回。 必须道歉,因为我是 javascript 的新手,示例中可能存在严重的语法和逻辑问题。

使用Dom-if模板

<a-card media="true">
  <template is="dom-if" if="{{media}}">
    <img slot="image" src=""/>
  </template>
</a-card>

图片只有在

时才会显示

media=true