From e135bb20cb44e23633d26500183d2982a27b44c7 Mon Sep 17 00:00:00 2001 From: qintarp Date: Sat, 8 Jun 2019 16:08:10 +0300 Subject: [PATCH] ssr-textarea-bind-fix --- src/compiler/compile/render-ssr/handlers/Element.ts | 3 +++ .../samples/text-area-bind/_expected.html | 1 + .../server-side-rendering/samples/text-area-bind/main.svelte | 5 +++++ 3 files changed, 9 insertions(+) create mode 100644 test/server-side-rendering/samples/text-area-bind/_expected.html create mode 100644 test/server-side-rendering/samples/text-area-bind/main.svelte diff --git a/src/compiler/compile/render-ssr/handlers/Element.ts b/src/compiler/compile/render-ssr/handlers/Element.ts index 5ed6875dec..be0e1492a0 100644 --- a/src/compiler/compile/render-ssr/handlers/Element.ts +++ b/src/compiler/compile/render-ssr/handlers/Element.ts @@ -146,6 +146,9 @@ export default function(node: Element, renderer: Renderer, options: RenderOption if (name === 'group') { // TODO server-render group bindings + } else if (binding.name === 'value' && node.name === 'textarea') { + const snippet = snip(expression); + textarea_contents='${(v => v ? ("' + name + '" + (v === true ? "" : "=" + JSON.stringify(v))) : "")(' + snippet + ')}'; } else { const snippet = snip(expression); opening_tag += ' ${(v => v ? ("' + name + '" + (v === true ? "" : "=" + JSON.stringify(v))) : "")(' + snippet + ')}'; diff --git a/test/server-side-rendering/samples/text-area-bind/_expected.html b/test/server-side-rendering/samples/text-area-bind/_expected.html new file mode 100644 index 0000000000..c3c8441f56 --- /dev/null +++ b/test/server-side-rendering/samples/text-area-bind/_expected.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/test/server-side-rendering/samples/text-area-bind/main.svelte b/test/server-side-rendering/samples/text-area-bind/main.svelte new file mode 100644 index 0000000000..7126e09375 --- /dev/null +++ b/test/server-side-rendering/samples/text-area-bind/main.svelte @@ -0,0 +1,5 @@ + + + \ No newline at end of file