在Handlebars模板中是否无法使用内联脚本?
<script type="text/x-handlebars">
I'm a row of type "foo"
<script type="text/javascript">alert('hi');</script>
</script>
当上述模板呈现时,内联脚本将被删除。
我要做的是在页面上包含disqus小部件。小部件基本上是一些标记+ disqus脚本。
小部件将包含在我的应用的子视图中。默认情况下,子视图不可见,但在我的Ember应用程序代码中按照某些逻辑显示。
答案 0 :(得分:10)
您必须在自定义Ember.View中包装该窗口小部件,以便在包装器视图的didInsertElement中处理实例化并将其添加到DOM。 Ember期望,特别是在车把模板内部,可以完全控制DOM操作,并且它通过组合车把魔法和Ember.View创建来实现。一旦定义了自定义视图:
MyApp.DisqusView = Em.View.extend({
didInsertElement: function() {
// create widget and append it to this.$()
}
});
您可以在把手模板中使用它:
{{view MyApp.DisqusView}}
出于安全原因,您的视图应不添加脚本标记,而应直接执行任何JS以插入小部件。