ここでは、1つのPolymerコンポーネントで複数のテンプレートを使用し、属性に基づいて特定のテンプレートに解決する方法を理解しようとしています。Polymer:属性に基づいて、同じコンポーネントの複数のテンプレート?
ここではシナリオです:
結果 期待コンポーネント
<dom-module id="py-test">
<template>
Foo
</template>
<template>
Bar
</template>
<script>
Polymer({
is: "py-test"
})
</script>
</dom-module>
マークアップ
<py-test bar></py-test>
<py-test></py-test>
はバーの属性を持っている場合、コンポーネントは2番目のテンプレートを使用する必要があります。それ以外の場合は、最初のテンプレートを使用する必要があります。
誰もがPolymerを提出する方法についての手掛かりを持っていますか?
//編集
マリアは、可能な解決策として、DOM-IFを指摘しました。これは仕事の種類です。私は、DOM-かのチェックを追加するには、上記の例を使用:
<dom-module id="py-test">
<template>
<template is="dom-if" if="[[foo]]">
Foo
</template>
<template is="dom-if" if="[[bar]]">
Bar
</template>
</template>
<script>
Polymer({
is: "py-test",
properties: {
foo: {
type: Boolean,
value: true
},
bar: {
type: Boolean,
value: false
}
}
})
</script>
</dom-module>
をしかし、私は<py-test>
要素自体に設定された属性でこれを結びつけることができますどのように表示されません。
'dom-if'をオプションとして使用しますか? – Maria
@Maria特定の関数の真実性をチェックすることによって、テンプレート間を切り替えることができるという意味で、dom-ifで扱えることがあります。しかし、それはマークアップ要素に設定された特定の属性にこれらのブール値の結果をどのように結びつけることができないか分からないため、あまり役に立ちません。何か案は? –
多分これはあなたが探しているものです。[iron-lazy-pages](https://github.com/TimvdLippe/iron-lazy-pages)。 Polymer.Templatizerの動作を使用して、属性に基づいてテンプレートをスタンプします –