Полимер, теневой дом, события и пузыри
У меня есть полимерный пользовательский элемент, использующий 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 }));