Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/alpinejs/src/directives/x-html.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ directive('html', (el, { expression }, { effect, evaluateLater }) => {
effect(() => {
evaluate(value => {
mutateDom(() => {
el.innerHTML = value
el.innerHTML = value ?? ''

el._x_ignoreSelf = true
initTree(el)
Expand Down
22 changes: 22 additions & 0 deletions tests/cypress/integration/directives/x-html.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,25 @@ test('x-html runs even after x-if or x-for',
get('span').should(haveText('bar'))
}
)

test('x-html sets HTML to a blank string when value is `null`',
html`
<div x-data="{ html: null }">
<span x-html="html">original HTML</span>
</div>
`,
({ get }) => {
get('span').should(haveText(''))
}
)

test('x-html sets HTML to a blank string when value is `undefined`',
html`
<div x-data="{ html: undefined }">
<span x-html="html">original HTML</span>
</div>
`,
({ get }) => {
get('span').should(haveText(''))
}
)