在聚合物中使用条件槽
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
我在 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