今日、私は "カード"のリストを生成する要素を作りたいと思います。これらのカードには、それが含まれるページに応じて非常に異なるものがあります。たとえば、これらのカードに画像が含まれていることがあります。時には連絡先情報(名前、年齢、住所、電話など)がある場合もあります。 CSSを処理するポリマー要素、データソースへのajax呼び出し、dom-repeat、およびこの要素にカードコンテンツを作成するために使用されるhtmlテンプレート(picture、video)を含む<slot>
(以前は<content>
として知られています) 、または連絡先カード)ポリマースロット入りコンテンツとデータバインディング
これは私がこれまでにやったことです:
親要素:
<tiles-list id="tilesView" datas="[[datas]]">
<img src="https//lorempixel.com/200/130/people" />
<p>[[item.name]]</p>
<p>[[item.age]]</p>
<p>[[item.adress]]</p>
<p>[[item.phone]]</p>
</tiles-list>
{{datas}}
は、AJAX呼び出し
と子要素内のURLに置き換えます。
<iron-ajax
auto
url="[[datas]]"
handle-as="json"
last-response="{{ajax}}"
on-response="log"></iron-ajax>
<div id="grid">
<template is="dom-repeat" items="[[ajax.data]]">
<div class="card gridCell">
<slot></slot>
</div>
</template>
</div>
しかし、ええ、それは動作しません。私が得るのは、適切な量のカードが入ったリストですが、最初のカードには画像しか含まれていませんが、データはありません。だから私はそれが動作するようにしようとしているように、スロットが動作しないと思うし、データバインディングはこの方法でも動作しません。
誰かが解決策を持っていますか?
あなたは正しいです。私が知っている限り、 'dom-repeat'に' slot/content'を置いて、複数のコピーを持つことはできません。 1つの解決策は、 'dom-repeat'自体を' light-dom'に移動することです。 – a1626
うまくいけば、light domにdom repeatを置くことは、私が避けようとしているものです。私がそうするなら、私はこのすばらしいジェネリック要素を作成して、HTMLコードをカードに変えることはできません – SKMTH