From 64e24f136d6a320870fe091a9ae176a42716ef4f Mon Sep 17 00:00:00 2001 From: ggtmtmgg Date: Sat, 1 Dec 2018 17:10:22 +0900 Subject: [PATCH 1/2] fix(server/render.js): make able to resolve camelCased local directives SSR directives can be only passed in with 'kebab-case' keys, but Client size rendering can be passed in with 'camelCale' keys. fix #8961 --- src/server/render.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/render.js b/src/server/render.js index 592a6175c5f..e5d49cf1f58 100644 --- a/src/server/render.js +++ b/src/server/render.js @@ -1,5 +1,6 @@ /* @flow */ +import { resolveAsset } from 'core/util/index' import { escape } from 'web/server/util' import { SSR_ATTR } from 'shared/constants' import { RenderContext } from './render-context' @@ -324,7 +325,7 @@ function renderStartingTag (node: VNode, context) { if (dirs) { for (let i = 0; i < dirs.length; i++) { const name = dirs[i].name - const dirRenderer = directives[name] + const dirRenderer = resolveAsset(context, 'directives', name, true) if (dirRenderer && name !== 'show') { // directives mutate the node's data // which then gets rendered by modules From eaba8ff4169b58d66a16a417f46678cb8f03894b Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 2 Dec 2018 15:57:00 -0500 Subject: [PATCH 2/2] Update render.js --- src/server/render.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/server/render.js b/src/server/render.js index e5d49cf1f58..965b64febbb 100644 --- a/src/server/render.js +++ b/src/server/render.js @@ -1,9 +1,9 @@ /* @flow */ -import { resolveAsset } from 'core/util/index' import { escape } from 'web/server/util' import { SSR_ATTR } from 'shared/constants' import { RenderContext } from './render-context' +import { resolveAsset } from 'core/util/options' import { generateComponentTrace } from 'core/util/debug' import { ssrCompileToFunctions } from 'web/server/compiler' import { installSSRHelpers } from './optimizing-compiler/runtime-helpers' @@ -325,11 +325,13 @@ function renderStartingTag (node: VNode, context) { if (dirs) { for (let i = 0; i < dirs.length; i++) { const name = dirs[i].name - const dirRenderer = resolveAsset(context, 'directives', name, true) - if (dirRenderer && name !== 'show') { - // directives mutate the node's data - // which then gets rendered by modules - dirRenderer(node, dirs[i]) + if (name !== 'show') { + const dirRenderer = resolveAsset(context, 'directives', name, true) + if (dirRenderer) { + // directives mutate the node's data + // which then gets rendered by modules + dirRenderer(node, dirs[i]) + } } } }