は、これはあなたの質問の私の解釈であるので、私はそれはあなたとOKになる場合は本当にわかりません。私があなたを誤解した場合は、コメントを削除してください。私は喜んで答えを更新します。
私は単純な要素の構成を思いついたので、dom-repeat
や手動テンプレートスタンピングは必要ありません。このソリューションは、2つのカスタム要素、つまりmy-parent
とmy-child
で構成されています。
両方のカスタム要素の定義は、以下の通りである。
<dom-module id="my-parent">
<template>
<tabs>
<content></content>
</tabs>
</template>
<script>
Polymer({
is: 'my-parent',
});
</script>
</dom-module>
<dom-module id="my-child">
<template>
<section>
<content></content>
</section>
</template>
<script>
Polymer({
is: 'my-child',
});
</script>
</dom-module>
そして、それらの提案使用方法は以下の通りです:
<my-parent>
<my-child>First tab</my-child>
<my-child>Second tab</my-child>
<my-child>Third tab</my-child>
</my-parent>
オンラインデモ:http://jsbin.com/hibuzafapu/1/edit?html,output
は、結果のHTML計算コードは次のようになります。
<my-parent>
<tabs>
<my-child>
<section>
First tab
</section>
</my-child>
<my-child>
<section>
Second tab
</section>
</my-child>
<my-child>
<section>
Third tab
</section>
</my-child>
</tabs>
</my-parent>
正しく理解していただければ、タグは<section>
タグをラップしているだけです。現在のところ、前述のタグは何もせず、すべてをラップするブロックレベルの要素です(ちょうどdiv
のように)。これが気になる場合は、実際に<section>
タグを省略して、すべてのスタイルを直接<my-child>
タグに入れてください。 (タブを追加/削除)の溶液に、いくつかのダイナミクスを追加するために
<my-parent>
<tabs>
<my-child>
First tab
</my-child>
<my-child>
Second tab
</my-child>
<my-child>
Third tab
</my-child>
</tabs>
</my-parent>
UPDATE
:
この場合、結果として計算されたHTMLは次のようになります2つのオプションがあります:dom-repeat
を使用して、軽いDOMでアイテムにスタンプを付けたり、アイテム配列をmy-parent
要素に押し込んで、dom-repeat
を使用します。どちらのオプションも実装に非常によく似ており、動作方法に大きな違いはありません。
オプション:光DOMに刻印:両方のカスタム要素のための
の定義は、唯一の違いは、あなたがそれらを使用する方法である、変わりません。ライトDOMをハードコーディングする代わりに、よりダイナミックにします。
<dom-module is="tmp-element">
<template>
<my-parent>
<template is="dom-repeat" items="[[myItems]]">
<my-child>[[item.content]]</my-child>
</template>
</my-parent>
</template>
<script>
Polymer({
is: 'tmp-element',
ready: function() {
this.myItems = [
{ content: "First tab" },
{ content: "Second tab" },
{ content: "Third tab" },
],
};
});
</script>
</dom-module>
<tmp-element></tmp-element>
tmp-element
は、結合範囲を作成し、dom-repeat
にデータを供給するために純粋に使用されます。
ライブデモ:http://jsbin.com/gafisuwege/1/edit?html,console,outputenter link description here
オプションB:親の内側に刻印:このオプションで
、親は私達が項目の配列を供給することになるであろうに、追加のプロパティを持っている必要があります。
<dom-module id="my-parent">
<template>
<tabs>
<template is="dom-repeat" items="[[items]]">
<my-child>[[item.content]]</my-child>
</template>
</tabs>
</template>
<script>
Polymer({
is: 'my-parent',
properties: {
items: Array,
},
});
</script>
</dom-module>
と使用方法は次のとおりです:
my-parent
要素の新しいバージョンは以下の通りです
<dom-module is="tmp-element">
<template>
<my-parent items="[[myItems]]"></my-parent>
</template>
<script>
Polymer({
is: 'tmp-element',
ready: function() {
this.myItems = [
{ content: "First tab" },
{ content: "Second tab" },
{ content: "Third tab" },
];
},
});
</script>
</dom-module>
<tmp-element></tmp-element>
ここで、私はまたにtmp-element
(前とは異なるもの)を使用していましたその 'データ'をmy-parent
に送ってください。
ライブデモ:http://jsbin.com/kiwidaqeki/1/edit?html,console,output
関連:https://stackoverflow.com/questions/34645114/polymer-dom-repeat-binding-to-content – montrealist
あなたが使用してのご希望の道を示すためにあなたの質問を拡張してもらえあなたのコンポーネント? – alesc
@alesc更新の方法はわかりませんが、それが可能かどうかはわかりません。 P .:光DOMを使用することは必須ではなく、私はそれを行う方法が必要です。 – montrealist