2
0
mirror of https://github.com/tenrok/vue-meta.git synced 2026-06-12 13:32:24 +03:00

fix: use empty string value for boolean attributes on client side (fixes #381)

This commit is contained in:
pimlie
2019-06-07 09:58:32 +02:00
parent a31877c991
commit eb4980c9de
2 changed files with 4 additions and 3 deletions
+2 -1
View File
@@ -1,3 +1,4 @@
import { booleanHtmlAttributes } from '../../shared/constants'
import { isUndefined } from '../../utils/is-type'
import { toArray, includes } from '../../utils/array'
@@ -51,7 +52,7 @@ export default function updateTag(appId, { attribute, tagIDKeyName } = {}, type,
const _attr = includes(dataAttributes, attr)
? `data-${attr}`
: attr
const value = isUndefined(tag[attr]) ? '' : tag[attr]
const value = isUndefined(tag[attr]) || booleanHtmlAttributes.includes(attr) ? '' : tag[attr]
newElement.setAttribute(_attr, value)
}
}
+2 -2
View File
@@ -124,7 +124,7 @@ const metaInfoData = {
return () => {
if (side === 'client') {
for (const index in this.expect) {
this.expect[index] = this.expect[index].replace(/(async|defer)/g, '$1="true"')
this.expect[index] = this.expect[index].replace(/(async|defer)/g, '$1=""')
}
const tags = defaultTest()
@@ -145,7 +145,7 @@ const metaInfoData = {
// this test only runs for client so we can directly expect wrong boolean attributes
change: {
data: [{ src: 'src', async: true, defer: true, [defaultOptions.tagIDKeyName]: 'content2' }],
expect: ['<script data-vue-meta="test" src="src" async="true" defer="true" data-vmid="content2"></script>']
expect: ['<script data-vue-meta="test" src="src" async="" defer="" data-vmid="content2"></script>']
},
remove: {
data: [],