Как получить доступ к элементу с пользовательским полимерным элементом?

Учитывая пример элемента.

<my-element>
    <h1>Hello world</h1>
    <a href="/test">Test</a>
</my-element>

Как мне выбрать href тега a?

Извините, у меня нет больше, я тестировал целую кучу вещей.

Я знаю в пределах <template>, если у вас есть <content id="a-tag" select="a">. Вы должны быть в состоянии пойти this.$["a-tag"], но я не знаю, как получить доступ к атрибутам, к тому же я застрял, показывая элемент в теневой модели DOM, чего я не хочу. Мысли?


person ThomasReggi    schedule 07.08.2014    source источник


Ответы (2)


Вы пробовали this.querySelector('a').href? this внутри ваших методов элемента Polymer относится к хост-узлу (за пределами Shadow DOM).

person CletusW    schedule 07.08.2014
comment
Это прекрасно работает! Есть ли способ выбрать innerText пользовательского элемента без ‹content›‹/content› - person ThomasReggi; 08.08.2014

content.getDistributedNodes() предоставит вам список узлов Light dom. через точку вставки <content>.

Так что это должно работать, если вы используете <content select="a">:

content.getDistributedNodes()[0].href

Примечание: this.$['a-tag'] не работает. Вам нужно будет сделать:

this.$['a-tag'].getDistributedNodes()[0].href
person ebidel    schedule 07.08.2014
comment
Есть ли способ не показывать/отображать контент в теме, но все же получить к нему доступ? - person ThomasReggi; 07.08.2014
comment
Все еще нужен ответ на этот вопрос: / ^^ - person ThomasReggi; 14.08.2014