2017-09-12 2 views
0

Je réécris mon application Polymer 1.0 en Polymer 2.0 (et TS) et j'ai rencontré un problème. Comment transférer un événement d'un élément à un autre? J'ai utilisé un iron-signal plus tôt, maintenant j'essaie d'utiliser le CustomEvent, mais à cause de l'événement ShadowDOM n'atteint pas l'élément.Polymer 2 événements

La hiérarchie des éléments est approximativement la suivante:

1 {2 {3 {4}}}}.

Je dois lancer un événement de element 1 à element 4, et dans un autre cas, vice versa.

Comment puis-je faire cela? Seulement par window.AddEventListener?

Répondre

4

Par défaut, les événements personnalisés s'arrêtent sur les limites DOM de l'ombre. Pour un événement personnalisé passe par des frontières DOM ombre, définissez le composé drapeau vrai lorsque vous créez l'événement:

var event = new CustomEvent('my-event', {bubbles: true, composed: true}); 

https://www.polymer-project.org/2.0/docs/devguide/events

+0

Et je devrais écouter cet événement comme celui-ci: window.addEventListener ('my-event', function() {...})? –

+0

Cela devrait fonctionner. –

+0

Regardez spécifiquement https://www.polymer-project.org/2.0/docs/devguide/events#imperative-listeners pour que l'événement personnalisé soit ajouté et supprimé correctement. – Thad