Как повторять содержимое слота - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь создать список многократного использования, в котором шаблон строки передается как слот, но содержимое слота повторяется только один раз. Пример здесь: https://codepen.io/chris-gunawardena/project/editor/XkPYQw

<script src="https://polygit.org/components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="https://polygit.org/components/paper-button/paper-button.html">
<dom-module id="list-repeater">
  <template>
      <template is="dom-repeat" items="{{items}}" as="item">
        <li>
          # [[index]]:  [[item]] <slot name="row-template"></slot>
        </li>
    </template>
  </template>
  <script>
    class ListRepeater extends Polymer.Element {
      static get is() {
        return 'list-repeater';
      }
      static get properties() {
        return {
          items: Array,
        };
      }
    }
    customElements.define(ListRepeater.is, ListRepeater);
  </script>
</dom-module>

Это привыкло так:

  <list-repeater items='["a","b"]'>
    <div slot="row-template">--slot content--</div>
  </list-repeater>

Функциональность аналогична Iron-List, который принимает шаблон, но с трудом следит за действиями Iron-List.

1 Ответ

0 голосов
/ 07 мая 2018

Использование слотов не будет работать в вашем случае, Iron-List использует Templatizer Behavior для достижения этого

Поведение Polymer.Templatizer добавляет методы для создания экземпляров шаблонов, каждый из которых управляется анонимным Polymer.PropertyEffects экземпляром, в котором привязки данных в содержимом штампованного шаблона связаны с Принадлежности на себя.

...