使用mustache.js handlebars.js在嵌套的胡子模板中呈现Javascript代码ICanHaz.js

时间:2012-03-16 12:35:55

标签: handlebars.js mustache icanhaz.js

是否可以在嵌套的mustache.js模板中呈现Javascript,如下所示?

myApp.mustache:

{{#myapp}}
{{>userApp}}
{{/myapp}}

userApp.mustache:

{{#user}}
<script>
  $(function () {
    $("a[id='a_popover_{{username}}']").popover()
  })
</script>
{{/user}}

模板使用pystache(Python的胡子库)正确呈现,但是mustache.js,handlebars.js,ICanHaz.js和ICanHandlebarz.js都抱怨#user没有正确关闭。

2 个答案:

答案 0 :(得分:0)

非常确定</script>位是问题,浏览器会看到它并将其解析为模板脚本的末尾。尝试转义它:<\/script>

答案 1 :(得分:0)

我也陷入了类似的问题,结果是创建了一个新的脚本元素,因为即使javascript代码被渲染,在附加到正文后也没有被执行,它就像字符串一样。

$('script:last').html('alert("ok !")'); // won't work

我案例的示例代码:

var render = Mustache.to_html(template, data_sources);
var sc  = document.createElement('script');
sc.innerHTML = render;
var p_div = document.getElementById('template_wrap_div').parentNode;
p_div.innerHTML = "";
p_div.appendChild(sc);

希望能给出一些想法和帮助。