Explorar o código

Merge pull request #1536 from Niklan/main

Init directives for x-if contents after it's created.
Caleb Porzio %!s(int64=3) %!d(string=hai) anos
pai
achega
98fa718d9a
Modificáronse 1 ficheiros con 11 adicións e 3 borrados
  1. 11 3
      packages/alpinejs/src/directives/x-if.js

+ 11 - 3
packages/alpinejs/src/directives/x-if.js

@@ -1,7 +1,9 @@
 import { evaluateLater } from '../evaluator'
-import { setStyles } from '../utils/styles'
 import { directive } from '../directives'
-import { once } from '../utils/once'
+import {initTree} from "../lifecycle";
+import {addScopeToNode} from "../scope";
+import {reactive} from "../reactivity";
+import {mutateDom} from "../mutation";
 
 directive('if', (el, { modifiers, expression }, { effect, cleanup }) => {
     let evaluate = evaluateLater(el, expression)
@@ -11,7 +13,13 @@ directive('if', (el, { modifiers, expression }, { effect, cleanup }) => {
 
         let clone = el.content.cloneNode(true).firstElementChild
 
-        el.after(clone)
+        addScopeToNode(clone, reactive(modifiers), el)
+
+        initTree(clone)
+
+        mutateDom(() => {
+            el.after(clone)
+        });
 
         el._x_currentIfEl = clone