-1

我正在使用yFiles for HTML图表库,它支持使用 SVG 模板渲染节点。根据文档,这是通过<script>在主 HTML 文件中嵌入一个特殊标签来完成的,其中包含一些 SVG 元素(没有封闭<svg>容器)。

<script type="text/yfiles-template">
<g id="expand_icon" transform="translate(21 6)">
   <polygon stroke="#FFFFFF" stroke-width="3" fill="none"
     points="6,17 6,12 1,12 1,6 6,6 6,1 12,1 12,6 17,6 17,12 12,12 12,17"/>
</g>
</script>

问题是把我所有的模板放在主 HTML 文件中很乱,我宁愿把它们分成几个外部 SVG 文件。但是,如果我只是将<script>'s 的内容复制到外部文件中并尝试像这样更改脚本标记:

<script type="text/yfiles-template" src="images/nodeTemplates.svg"></script>

似乎不起作用。没有显示错误,但没有显示我的模板。

我在文档中找不到关于它的任何其他内容,并且完全有可能在主 HTML 中对其进行硬编码以查找它,但我想知道是否有人设法让它从外部文件中读取模板。

4

2 回答 2

0

我建议您使用StringTemplateNodeStyle,您只需将 svg 片段作为字符串传递给样式。然后,您可以使用自己的加载机制来检索片段。

请注意,如果您不需要 TemplateNodeStyle 的所有数据绑定功能,而只是想将 svg 文件作为图像动态包含,您也可以使用ImageNodeStyle并将其直接指向您的 SVG 资源。或者,如自定义样式教程中所示实现您自己的样式也是一个非常可行且灵活的解决方案。

于 2016-03-21T17:03:37.810 回答
-2

该节点具有和 image 属性,您可以将其用于有效的 .svg 文件,即:

<svg height="100" width="100">
  <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

以上将使您能够将每个 svg 放入不同的 .svg 文件中。

于 2015-07-28T13:33:25.210 回答