From 5a8e6e4bdf8aeca7eb9515a1a4891567ba9b14cc Mon Sep 17 00:00:00 2001 From: Clark Du Date: Tue, 4 Dec 2018 12:19:05 +0000 Subject: [PATCH] fix: merge route.meta into options.meta (#4479) [skip release] --- packages/vue-app/template/utils.js | 4 ++-- test/fixtures/with-config/nuxt.config.js | 3 ++- test/fixtures/with-config/pages/about.vue | 6 +++++- test/unit/with-config.test.js | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/vue-app/template/utils.js b/packages/vue-app/template/utils.js index 85bc7ed3e9..485ea2f67b 100644 --- a/packages/vue-app/template/utils.js +++ b/packages/vue-app/template/utils.js @@ -111,8 +111,8 @@ export async function getRouteData(route) { // Send back a copy of route with meta based on Component definition return { ...route, - meta: getMatchedComponents(route).map((Component) => { - return Component.options.meta || route.meta || {} + meta: getMatchedComponents(route).map((Component, index) => { + return { ...Component.options.meta, ...(index ? {} : route.meta) } }) } } diff --git a/test/fixtures/with-config/nuxt.config.js b/test/fixtures/with-config/nuxt.config.js index 48ccb1e152..a7962a1028 100644 --- a/test/fixtures/with-config/nuxt.config.js +++ b/test/fixtures/with-config/nuxt.config.js @@ -17,7 +17,8 @@ export default { { name: 'about-bis', path: '/about-bis', - component: '~/pages/about.vue' + component: '~/pages/about.vue', + meta: { text: 'test-meta' } }, { path: '/redirect/about-bis', diff --git a/test/fixtures/with-config/pages/about.vue b/test/fixtures/with-config/pages/about.vue index d7edaf5235..974128a9c7 100644 --- a/test/fixtures/with-config/pages/about.vue +++ b/test/fixtures/with-config/pages/about.vue @@ -1,6 +1,7 @@