Caleb Porzio 1 年之前
父节点
当前提交
2f59ee2bc1
共有 1 个文件被更改,包括 14 次插入9 次删除
  1. 14 9
      packages/alpinejs/src/lifecycle.js

+ 14 - 9
packages/alpinejs/src/lifecycle.js

@@ -81,18 +81,22 @@ export function interceptInit(callback) { initInterceptors.push(callback) }
 export function initTree(el, walker = walk, intercept = () => {}) {
     deferHandlingDirectives(() => {
         walker(el, (el, skip) => {
-            if (!el._x_isInit) {
-                intercept(el, skip)
+           // Prevent initing an element multiple times...
+           if (el._x_inited) {
+                el._x_ignore && skip()
 
-                initInterceptors.forEach(i => i(el, skip))
-                directives(el, el.attributes).forEach(handle => handle())
+                return
             }
 
-            if (el._x_ignore) {
-                skip()
-            } else {
-                el._x_isInit = true
-            }
+            intercept(el, skip)
+
+            initInterceptors.forEach(i => i(el, skip))
+
+            directives(el, el.attributes).forEach(handle => handle())
+
+            el._x_ignore && skip()
+
+            el._x_inited = true
         })
     })
 }
@@ -101,6 +105,7 @@ export function destroyTree(root) {
     walk(root, el => {
         cleanupAttributes(el)
         cleanupElement(el)
+
         delete el._x_isInit
     })
 }