我有一个预编译的把手模板。我只是将html发送给我(正常情况下),但我决定在将其插入DOM时包含要执行的脚本。但是,我还没有能够让脚本运行。
当他们的车把模板没有预先编译时,很多人似乎遇到过这个问题,但是我还没有看到很多问题都是预编译的。
这是我的.hbs文件的基本结构:
<div>
<h1>{{title}}</h1>
</div>
<script>
// please do something
alert('Executing the script');
</script>
我将把手注入DOM并且该部分正在工作(注入了html并且变量已经设置好)。但是,脚本永远不会执行。
有什么想法吗?
答案 0 :(得分:1)
正如我之前在评论中提到的那样,你不能直接在Handlebars模板中添加脚本。
您可以创建新的HTML标记,您将动态地将其视为可以执行您要执行的工作的代码。例如:
<div data-handlebars-script="example-stack-overflow"></div>
或
<example-stack-overflow />
(我更愿意采用更标准的方式 - 第一种方式)。
在渲染模板后,您可以使用例如jQuery的。
$('div[data-handlebars-script="example-stack-overflow"').each(function() {
// Do your stuff here
});
修改强>
让我一边发表评论。如果你需要做这样的事情,那可能表明你的设计存在某些缺陷。