Forráskód Böngészése

Merge pull request #126 from thormeier/master

Add test for PR #91 regarding disconnected nodes and fix same issue while listening for new components.
Caleb Porzio 5 éve
szülő
commit
054e9d5985
4 módosított fájl, 26 hozzáadás és 1 törlés
  1. 0 0
      dist/alpine.js
  2. 0 0
      dist/alpine.js.map
  3. 1 1
      src/index.js
  4. 25 0
      test/mutations.spec.js

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
dist/alpine.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
dist/alpine.js.map


+ 1 - 1
src/index.js

@@ -60,7 +60,7 @@ const Alpine = {
 
                         // Discard any changes happening within an existing component.
                         // They will take care of themselves.
-                        if (node.parentElement.closest('[x-data]')) return
+                        if (node.parentElement && node.parentElement.closest('[x-data]')) return
 
                         this.discoverUninitializedComponents((el) => {
                             this.initializeComponent(el)

+ 25 - 0
test/mutations.spec.js

@@ -0,0 +1,25 @@
+import Alpine from 'alpinejs'
+
+test('catch disconnected nodes that were used as targets for any mutations', async () => {
+    const runObservers = []
+
+    global.MutationObserver = class {
+        constructor(callback) { runObservers.push(callback) }
+        observe() {}
+    }
+
+    document.body.innerHTML = `
+        <div x-data="{}">
+        </div>
+    `
+
+    Alpine.start()
+
+    runObservers.forEach(cb => cb([
+        {
+            target: document.createElement('div'),
+            type: 'childList',
+            addedNodes: [ document.createElement('div') ],
+        }
+    ]))
+})

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott