Ver código fonte

Fix empty x-init (#1993)

* Update x-init.js

* added test
Dede Muzaffer 3 anos atrás
pai
commit
74c7ba4d55

+ 1 - 1
packages/alpinejs/src/directives/x-init.js

@@ -5,4 +5,4 @@ import { evaluate } from "../evaluator";
 
 addInitSelector(() => `[${prefix('init')}]`)
 
-directive('init', skipDuringClone((el, { expression }) => evaluate(el, expression, {}, false)))
+directive('init', skipDuringClone((el, { expression }) => !! expression.trim() && evaluate(el, expression, {}, false)))

+ 9 - 0
tests/cypress/integration/directives/x-init.spec.js

@@ -35,3 +35,12 @@ test('can make deferred changes with $nextTick',
     `,
     ({ get }) => get('span').should(haveText('yo'))
 )
+
+test('x-init will not evaluate expression if it is empty',
+    html`
+        <div x-data="{ foo: 'bar' }" x-init=" ">
+            <span x-text="foo" x-ref="foo">baz</span>
+        </div>
+    `,
+    ({ get }) => get('span').should(haveText('bar'))
+)