Я искал это, и все ответы использовали Дарт, с которым у меня нет опыта.Не удается получить доступ к элементам в вложенном шаблоне/повторяющемся шаблоне?
Есть ли способ сделать это с помощью обычного ol 'JS?
this.$.classname
только возврат null
.
редактировать: вот пример того, что я пытаюсь сделать
<template repeat="{{item, i in items}}">
<div id="accordheader" on-click="{{toggle}}">{{item}}</div>
<core-collapse id="collapse">
<p>asdf</p>
</core-collapse>
</template>
и сценарий:
toggle: function() {
this.$.collapse.toggle();
console.log('toggled');
}
Я пытаюсь сделать гармошку на основе ядра коллапса, и в то время как this.$.collapse.toggle();
console.log работает, когда он не в template
с repeat
в качестве атрибута, он не работает, если он находится в template
с repeat
в качестве атрибут. Я пробовал и this.$.collapse.toggle();
, и this.shadowRoot.querySelectorAll('#collapse');
и ни один не нашел его в повторном шаблоне.
Первое, что я пробовал, был shadowRoot.querySelector; no dice :( – shanling
Я пропустил то, что вы использовали $ .'classname'. '$' также может использоваться только для доступа к элементам по id, а не по имени класса или любому другому селектору. 'querySelector' работает всегда, когда ваш элемент существует. Мне нужно больше информацию о том, почему 'querySelector' может не работать в вашей ситуации. Либо элемент не существует, либо селектор ошибочен. –
Я отредактировал свой вопрос на примере того, что я пытаюсь сделать. Спасибо за ответ :-) – shanling