在聚合物中使用条件槽

时间:2017-10-06 18:07:36

标签: javascript polymer-3.x

我在聚合物3 es6中构建了一个材质设计卡元素,并希望在属性设置为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时,将返回卡片图像div和插槽。 不得不道歉,因为我是javascript的新手,可能在示例中有严重的语法和逻辑问题。

1 个答案:

答案 0 :(得分:2)

使用Dom-if模板

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

图像仅在

时显示
  

媒体=真