【发布时间】:2015-05-09 12:53:17
【问题描述】:
我一直试图在 Meteor / Telescope (telesc.pe) 应用程序中包含静态 HTML+JavaScript,但无法使用 Blaze 进行操作。
为了创建一个比我的原始案例更简单的案例,我尝试在下面的通过 Meteor 中插入一个简单的 HTML + javascript 代码块(非常基本的 D3.js 可视化创建一个圆圈)。这个 HTML 块存储在 MongoDB 的集合中,并使用下面的模板访问
<script type="text/javascript" src="http://mpld3.github.io/js/mpld3.v0.2.js"></script>
<h1>Circle</h1>
<div id="viz"></div>
<h1>/Circle</h1>
<script type="text/javascript">
var sampleSVG = d3.select("#viz")
.append("svg")
.attr("width", 100)
.attr("height", 100);
sampleSVG.append("circle")
.style("stroke", "gray")
.style("fill", "white")
.attr("r", 40)
.attr("cx", 50)
.attr("cy", 50)
.on("mouseover", function(){d3.select(this).style("fill", "aliceblue");})
.on("mouseout", function(){d3.select(this).style("fill", "white");});
</script>
我一直将它作为非转义标签包含在 Meteor 中。例如
<template name="post_body">
{{{ htmlBody }}}
</template>
上面 sn-p 中的 HTML 正确呈现(文本 Circle 和 /Circle),但它似乎没有尝试加载我包含的任何 javascript 元素。
我完全知道这不是将可视化加载到 Meteor 应用程序的最佳方式,但很可能需要这样做,因为我正在使用的(更复杂的)可视化是使用外部静态生成的应用程序。
任何有关如何使这项工作的帮助将不胜感激!
【问题讨论】:
标签: meteor meteor-blaze spacebars