Как получить доступ к элементам внутри Dom-repeat в Polymer 3.0? - PullRequest
0 голосов
/ 24 января 2019

У меня есть следующий фрагмент кода:

<dom-repeat id="template" items="{{chats}}">
    <template>
      <template is="dom-if" if="[[item.opened]]">
        <section id$="msg-[[index]]"></section>
      </template>
    </template>
</dom-repeat>

Как я могу получить доступ к разделу с id = msg-3 и установить scrollTop в 999 после рендеринга?

Я знаю, чтов полимере 1 лучшая практика заключалась в том, чтобы связываться с присоединенным и ждать события dom-repeat с помощью средства удаления звука, которое больше не работает в полимере 3, однако.

1 Ответ

0 голосов
/ 25 января 2019

Если вам известен номер индекса, к которому вы можете получить доступ к элементу;

let el = this.shadowRoot.querySelector('#msg-'+<index>);

Помните, что если элемент не отображается из-за фильтра с помощью dom-if, вы не можете получить доступ к этому элементу.

РЕДАКТИРОВАТЬ

Чтобы показать поверх выбранного элемента;

let screenPosition = el.getBoundingClientRect();
window.scrollTo(screenPosition);

Демо

...