Вызовите метод LitElement извне элемента - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть простой компонент LitElement, такой как:

class MyElement extends LitElement {

  constructor() {
    super();
  }

  customMethod(data) {
    // do something with the passed parameter
  }

  render() { 
    return html`<div id="element"></div>`;
  }
}

customElements.define('my-element', MyElement);

И я хочу иметь возможность вызывать этот customMethod снаружи моего элемента.

Так, например, если я добавлюэлемент на веб-страницу, например, так:

<my-element></my-element>

Затем я хочу иметь возможность добавить JavaScript на страницу и вызвать этот customMethod.

Я пытался:

var element = document.getElementById('element');

element.shadowRoot.customMethod('example data');

Но он утверждает, что он недоступен ... Как я могу вызвать метод для экземпляра LitElement?

1 Ответ

4 голосов
/ 30 сентября 2019

Вам не нужно использовать shadowRoot при вызове:

var element = document.getElementById('element');

element.customMethod('example data');

, но вы должны быть в состоянии найти свой элемент

<my-element id='element'></my-element>
...