链接到外部文件中的SVG模板

时间:2015-06-02 11:53:35

标签: html yfiles

我正在使用yFiles for HTML图表库,它支持使用SVG模板渲染节点。根据{{​​3}},这是通过在主HTML文件中嵌入一个特殊的<script>标记来完成的,其中包含一些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>的内容复制到外部文件中并尝试更改脚本标记,如下所示:

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

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

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

2 个答案:

答案 0 :(得分:0)

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

请注意,如果您不需要TemplateNodeStyle的所有数据绑定功能,但只想动态地将svg文件包含为图像,您也可以使用ImageNodeStyle并将其直接指向您的SVG资源。另外,如the custom style tutorial所示,实现自己的风格也是一种非常可行且灵活的解决方案。

答案 1 :(得分:-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文件中。