Skip to content

Commit b5c1bf6

Browse files
committed
do not merge empty class on component placeholder (fix #2789)
1 parent 8879c82 commit b5c1bf6

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/compiler/transclude.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ function mergeAttrs (from, to) {
151151
value = attrs[i].value
152152
if (!to.hasAttribute(name) && !specialCharRE.test(name)) {
153153
to.setAttribute(name, value)
154-
} else if (name === 'class' && !parseText(value)) {
155-
value.trim().split(/\s+/).forEach(function (cls) {
154+
} else if (name === 'class' && !parseText(value) && (value = value.trim())) {
155+
value.split(/\s+/).forEach(function (cls) {
156156
addClass(to, cls)
157157
})
158158
}

test/unit/specs/compiler/transclude_spec.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,16 @@ describe('Transclude', function () {
119119
expect(res.getAttribute('title')).toBe('child')
120120
})
121121

122+
// #2789
123+
it('empty class merge', () => {
124+
el.setAttribute('class', '')
125+
options.template = '<div class="test"></div>'
126+
options.replace = true
127+
options._asComponent = true
128+
var res = transclude(el, options)
129+
expect(res.getAttribute('class')).toBe('test')
130+
})
131+
122132
it('class merge for svg elements', function () {
123133
el.setAttribute('class', 'test')
124134
options.template = '<circle class="other"></circle>'

0 commit comments

Comments
 (0)