From 7f067fcd760d80ceee79af6761b0b7d86b61a197 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Fri, 21 Apr 2017 19:01:42 +0200 Subject: [PATCH] Allow slot names to be numbers Closes #5480 --- src/core/instance/render-helpers/resolve-slots.js | 2 +- .../unit/features/component/component-slot.spec.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/core/instance/render-helpers/resolve-slots.js b/src/core/instance/render-helpers/resolve-slots.js index 19c7dcfb6a5..48ead8fcf55 100644 --- a/src/core/instance/render-helpers/resolve-slots.js +++ b/src/core/instance/render-helpers/resolve-slots.js @@ -18,7 +18,7 @@ export function resolveSlots ( // named slots should only be respected if the vnode was rendered in the // same context. if ((child.context === context || child.functionalContext === context) && - child.data && (name = child.data.slot)) { + child.data && (name = child.data.slot) != null) { const slot = (slots[name] || (slots[name] = [])) if (child.tag === 'template') { slot.push.apply(slot, child.children) diff --git a/test/unit/features/component/component-slot.spec.js b/test/unit/features/component/component-slot.spec.js index a4e8621a595..71c222500a6 100644 --- a/test/unit/features/component/component-slot.spec.js +++ b/test/unit/features/component/component-slot.spec.js @@ -57,6 +57,20 @@ describe('Component slot', () => { }).then(done) }) + it('named slot with 0 as a number', done => { + mount({ + childTemplate: '
', + parentContent: '

{{ msg }}

' + }) + expect(child.$el.tagName).toBe('DIV') + expect(child.$el.children[0].tagName).toBe('P') + expect(child.$el.children[0].textContent).toBe('parent message') + vm.msg = 'changed' + waitForUpdate(() => { + expect(child.$el.children[0].textContent).toBe('changed') + }).then(done) + }) + it('fallback content', () => { mount({ childTemplate: '

{{msg}}

'