Полимер, теневой дом, события и пузыри

У меня есть полимерный пользовательский элемент, использующий shadow dom (v1), этот элемент находится внутри другого полимерного пользовательского элемента, также обернутого в shadow dom..

В моем понимании, когда самый внутренний элемент вызывает событие, самый внешний элемент (приложение) должен иметь возможность прослушивать эти события. Это неверно?

У меня есть компонент рейтинга внутри компонента обзора внутри компонента приложения. компонент рейтинга генерирует событие:

this.dispatchEvent(new CustomEvent('custom-event'), { bubbles:true, composed:true });

Однако приведенный ниже код в компоненте приложения никогда не запускается.

connectedCallback() { 
  super.connectedCallback();
  this.addEventListener('custom-event', () => { console.log('a');});
}

Я ошибочен, полагая, что событие должно в конечном итоге всплыть вверх по различным теневым домам к окну, если кто-то не остановит распространение?

Спасибо за любые ответы..

Джон.

1 ответ

Найдя его, я установил параметры в качестве аргумента для dispatchEvent вместо добавления параметров в CustomEvent.

так вместо

this.dispatchEvent(new CustomEvent("event"), { options });

ты должен сделать

this.dispatchEvent(new CustomEvent("event", { options }));
Другие вопросы по тегам