Javascript 将D3图形嵌入到把手模板中
我试图将d3图形嵌入handlebar模板,但当我嵌入handlebar的object registryhelper时,返回的[object SVGSVGElement]不是html D3图形与把手注册表辅助程序 车把模板Javascript 将D3图形嵌入到把手模板中,javascript,d3.js,handlebars.js,Javascript,D3.js,Handlebars.js,我试图将d3图形嵌入handlebar模板,但当我嵌入handlebar的object registryhelper时,返回的[object SVGSVGElement]不是html D3图形与把手注册表辅助程序 车把模板 Handlebar显示svg对象的toString值 使用html方法获取svg的html表示形式,请参见 然后使用handlebar.SafeString指示handlebar不转义HTML,类似这样:返回new handlebar.SafeStringsvg.HTML 但
Handlebar显示svg对象的toString值 使用html方法获取svg的html表示形式,请参见 然后使用handlebar.SafeString指示handlebar不转义HTML,类似这样:返回new handlebar.SafeStringsvg.HTML 但在这样做之前,请考虑您的示例中的一些问题: 您使用的是d3.select,这意味着从DOM中选择一个元素。然后直接影响DOM中的元素。不是像函数一样工作,可能您要做的是在内存中创建p元素。或者,您也可以在不创建Handlebar辅助对象的情况下解决使用DOM的问题 一个小问题:将var添加到svg,否则将使用全局变量
请问你最终是如何解决这个问题的?
Handlebars.registerHelper('list', function() {
svg = d3.select('p').append("svg").attr("width",w).attr("height",h);
var rect1 =svg.append("rect").attr("x",0).attr("y",3*h/4).
attr("width",w).attr("height",rect_1_h).style("fill",rect_1_color);
return svg;
});
{{#each objects}}
<tr>
<td><p>{{#list}}{{/list}}</p></td>
</tr>
{{/each}}