From a69ccdc479c60df019e99d0d659026a5e2c97ac9 Mon Sep 17 00:00:00 2001 From: ggtmtmgg Date: Mon, 3 Dec 2018 06:01:19 +0900 Subject: [PATCH] fix(ssr): resolve server directives the same as on client (#9129) fix #8961 --- src/server/render.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/server/render.js b/src/server/render.js index 592a6175c5f..965b64febbb 100644 --- a/src/server/render.js +++ b/src/server/render.js @@ -3,6 +3,7 @@ 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' @@ -324,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 = directives[name] - 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]) + } } } }