소스 검색

Merge pull request #1536 from Niklan/main

Init directives for x-if contents after it's created.
Caleb Porzio 3 년 전
부모
커밋
98fa718d9a
1개의 변경된 파일11개의 추가작업 그리고 3개의 파일을 삭제
  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 { evaluateLater } from '../evaluator'
-import { setStyles } from '../utils/styles'
 import { directive } from '../directives'
 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 }) => {
 directive('if', (el, { modifiers, expression }, { effect, cleanup }) => {
     let evaluate = evaluateLater(el, expression)
     let evaluate = evaluateLater(el, expression)
@@ -11,7 +13,13 @@ directive('if', (el, { modifiers, expression }, { effect, cleanup }) => {
 
 
         let clone = el.content.cloneNode(true).firstElementChild
         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
         el._x_currentIfEl = clone