EmberJS 1.13 Templating - 来自htmlSafe字符串的脚本元素不执行JS

时间:2016-06-29 17:27:26

标签: javascript ember.js htmlbars

我观察到,在脚本标签中将JS写入模板时会运行脚本,使用Handlebars表达式将它们插入到模板中会阻止它运行。

我尝试将其写入我的组件:

test: Ember.String.htmlSafe("<script>console.log('Hello World')</script>")

在我的模板中:

{{test}}

这会将其插入DOM,但不会运行代码。我以为是因为HTMLBars不允许模板中的脚本标签,只是写

<script>console.log('Hello World')</script>

进入模板本身将运行JS。

有人可以告诉我是否有办法实现这一目标,或者说明为什么会发生这种情况?提前谢谢。

2 个答案:

答案 0 :(得分:0)

如果您使用javascript字符串,则可以使用额外的{{{}}}来正确显示它们。安全模板输出:

{{{test}}}

那将完成这项工作。看看这篇博客文章

http://www.kaspertidemann.com/html-safe-strings-in-handlebars/

答案 1 :(得分:0)

没有必要这样做。您可以从组件中运行JavaScript代码,也可以在模板中添加<script>标记(就像您在问题中描述的那样)。