diff --git a/CHANGELOG.md b/CHANGELOG.md index 0df59bc6958fadd2956de19fc89ed79d6fc91db3..9fe2d17c3b89a43bfce4085260c24f0ea7ae6068 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ CHANGELOG ========= +6.2.7 (08/01/2025) +------------------ + +- [Fix] Les composants Vue sont aussi chargés à l'intérieur de div imbriquées de HTML renvoyé en Ajax + + 6.2.6 (07/01/2025) ------------------ diff --git a/js/Client/main.js b/js/Client/main.js index 51698c093d1ce6bed7910731c81473bc9b0631ec..fb0a89a630c509d1e7ea4fb3ad81d064e6765537 100644 --- a/js/Client/main.js +++ b/js/Client/main.js @@ -54,10 +54,20 @@ function init(vues, options) const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { if (mutation.type === 'childList') { - // Vérifier si de nouveaux éléments avec la classe .vue-app ont été ajoutés + // Parcourir les nœuds ajoutés for (const node of mutation.addedNodes) { - if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains('vue-app')) { - mountVueApp(node); + // Vérifier si le nœud est un élément et contient des éléments .vue-app + if (node.nodeType === Node.ELEMENT_NODE) { + // Rechercher des éléments .vue-app dans le nœud ajouté et ses enfants + const vueApps = node.querySelectorAll ? node.querySelectorAll('.vue-app') : []; + for (const el of vueApps) { + mountVueApp(el); + } + + // Vérifier si le nœud lui-même est un .vue-app + if (node.classList.contains('vue-app')) { + mountVueApp(node); + } } } }