0
votes

Modèle de nettoyage automatiquement des gestionnaires d'événements, similaires aux abonnements déterministes

Je connais les modèles utilisés pour nettoyer les abonnements sur des observables comme indiqué ici: angular / rxjs quand dois-je vous désabonner de < code> abonnement

mais existe-t-il un modèle similaire pour nettoyer les gestionnaires d'événement?

J'ai un composant qui modifie un modèle fourni par dynamisme Appliquer des manipulateurs d'événements à divers éléments entre autres. Il existe d'autres abonnements impliqués et nettoyés à l'aide de NGRX-PRIST-JUST-DESTRY Simplifiant tout. Actuellement, je maintiens simplement une gamme distincte de non subventionnable pour collecter et nettoyer lorsqu'il est détruit. xxx

Je préfère ne pas conserver ce tableau et De la même manière, ont un nettoyage automatique des auditeurs. Quelles sont mes options?


4 commentaires

Pouvez-vous ajouter le code HTML aussi? Utilisation du Renderer2 devrait être le dernier recours.


Aussi, cela pourrait déjà être répondu: Stackoverflow.com/questions/46688843/...


@Danielhabenicht: Le HTML récupéré de manière dynamique et n'est pas traitée par angulaire. Aussi loin que je sache, doit être traité manuellement (que fait cette composante). Le HTML ressemblerait autrement un peu comme ceci:

certains texte


Ah d'accord. Ensuite, l'autre scaleverflow devrait aider :)


3 Réponses :


-1
votes

Vous n'avez pas besoin de nettoyer les gestionnaires d'événements sur des éléments DOM faisant partie du composant, vous n'auriez besoin que de nettoyer un gestionnaire d'événements si l'élément DOM est toujours actif après que le composant soit détruit.

La raison pour laquelle vous devez nettoyer les abonnements aux observables renvoyés à partir de services est dû au fait que les observables sont toujours référencés après la destruction du composant, si vous avez un observable créé par le composant, vous pouvez laisser l'ensemble de la composante à la collecte des ordures sans S'inquiéter des abonnements. Même chose pour les éléments DOM.


2 commentaires

Les éléments sont générés dynamiquement et non statiques, donc je ne sais pas si cela s'applique. Mais même alors, il y a d'autres cas parfaitement bons pour avoir besoin de quelque chose à faire à un certain point d'un cycle de vie des applications, dans ce cas, le nettoyage. Dans tous les cas, je ne préférerais pas laisser le GC le gérer, même si cela pourrait probablement avec 100% de certitude.


C'est ce que la collecte des ordures est pour, si deux objets qui se référent les uns des autres sont tombés dans la collecte des ordures, vous n'avez pas besoin de casser la référence entre elles. Si vous créez dynamiquement un élément DOM qui sera détruit lorsque le composant est détruit, vous n'avez pas besoin de supprimer les gestionnaires d'événements.




0
votes

Lorsque vous cherchez quelque chose de similaire, je suis tombé sur deux options:

  • en utilisant Library Bibliothèque qui fait essentiellement ce que vous faites, mais de manière moins verbeuse.
  • Création de votre propre décorateur de désinscription qui fait le bon travail, un tutoriel de Natanel Basel peut trouver Ici

0 commentaires