2017-02-05 1 views
1

Ich versuche d3-Knoten zu verwenden, um ein Diagramm in Server-Seite zu machen und versuchen, den neuen Plan zu EJS mit folgendem Code zu machen: <% = svgChart%> wenn ich browser es sehen können, zeigt es nur die svg-Tag Inhalt wie unten:warum rendeing svg-Tag zu einer ejs Datei nicht erkannt

<svg xmlns="http://www.w3.org/2000/svg" width="960" height="400"><defs>      <style type="text/css"><![CDATA[ .axis{font: 10px sans-serif;} .axis path,.axis line{fill: none;stroke: #000;shape-rendering: crispEdges;} .x.axis path{display: none;} ]]></style></defs><g transform="translate(40,20)"><path d="M20,32.4L20.430000000000003,32.4L20.86,32.4L21.290000000000003,32.4L21.720000000000002,32.4L22.150000000000002,32.4L22.580000000000002,32.4L23.01,32.4L23.44,32.4L23.87,32.4L24.299999999999997,32.4L24.73,32.4L25.16,32.4L25.590000000000003,32.4L26.02,32.4L26.450000000000003,32.4L26.88,32.4L27.310000000000002,32.4L27.740000000000002,32.4L28.17,32.4L28.6,32.4L29.03,32.4L29.46,32.4L29.89,32.4L30.32,32.4L30.75,32.4L31.18,32.4L31.61,32.4L32.04,32.4L32.47,32.4L32.9,32.4L33.33,32.4L33.76,32.4L34.190000000000005,32.4L34.620000000000005,32.4L35.050000000000004,32.4L35.480000000000004,32.4L35.910000000000004,32.4L36.34,32.4L36.77,32.4L37.2,32.4L37.63,32.4L38.06,32.4L38.489999999999995,32.4L38.92,32.4L39.35,32.4L39.78,32.4L40.21,32.4L40.64,32.4L41............................... 

nicht das Diagramm zeigt sich. Das SvgChart enthält die Zeichenfolge des Svg-Tags. Wenn ich den svgChart-Inhalt (die Zeichenfolge) direkt in die ejs kopiere, wird das Diagramm perfekt angezeigt.

es scheint ejs nicht in der Lage des Tag-Inhalt zu machen, wenn der page.It denkt als einfache Zeichenfolge, die die svgChart geladen.

Meine Frage: Wie werden die ejs machen die svgChart als SVG-Tag erkennen, damit es die svg-Chart insead des Textes des Tags zeigen kann?

+0

@ Robert, so scheint es im Zusammenhang mit EJS-Rendering-Methode. Scheint beim Rendern, der Code zwischen der <% %> hat nur den Code selbst, nicht die Zeit, um es als Svg-Code zu interpretieren. Da ich den gleichen SVG-Code (Tag) direkt in dieselbe EJS-Datei kopieren kann, kann der Client das Diagramm perfekt abrufen, anstatt den Code zu sehen. Was ich versuche, ist, den Svg-Code (oder das SVG-Tag) dynamisch in die EJS-Datei zu legen, damit der Client jedes Mal ein anderes Diagramm hat, wenn sich die Daten geändert haben. Irgendwelche Vorschläge? – Robin

Antwort

1

Versuchen <%- svgChart %> statt <%= svgChart %> zu verwenden. von EJS Dokumentation:

  • <% = gibt den Wert in die Vorlage
  • <% (HTML entkam) - Gibt den unescaped Wert in die Vorlage
+0

Danke Lukkazs. Lass mich das versuchen und werde später auf dich zurückkommen. Ich hatte gedacht, das ist nicht die richtige Richtung und versuchte es anders für meine vorherige Bewerbung. – Robin