在胡子模板中包含javascript

时间:2012-07-03 15:40:47

标签: javascript mustache

我有一个javascript块用于显示广告,我希望每隔一次在页面上包含这些广告。

我正在使用Mustache作为我的模板语言,但无法解决如何包含js以使其作为脚本运行而不仅仅是作为字符串插入。

<script id="mustache-post-advert" type="text/mustache">
<article id="post-{{id}}" class="post">

    {{{  <script type="text/javascript">GA_googleFillSlot("MPU")</script>  }}}

</article>

</script>

我已经尝试了三倍{我希望它会逃脱,但遗憾的是它没有。

2 个答案:

答案 0 :(得分:18)

您的json-input应引用要调用的脚本:

JSON

 var json = {
   id: "someid",
   gaFillSlot: function(){
     GA_googleFillSlot("MPU");
   }
 }

TEMPLATE

 <script id="mustache-post-advert" type="text/mustache">
   <article id="post-{{id}}" class="post">
     {{gaFillSlot}}
   </article>
 </script>

确保&#39; GA_googleFillSlot&#39;可以在模板时从胡子的上下文中调用。

这符合Mustache的逻辑性质:你想要的任何逻辑都应该嵌入你传递给Mustache的json中。

没有对此进行测试,但这应该可行。 HTH

答案 1 :(得分:1)

您已经在脚本标记内,无需添加其他标记:

<script id="mustache-post-advert" type="text/mustache">
  <article id="post-{{id}}" class="post">
    {{ GA_googleFillSlot("MPU") }}
  </article>
</script>

修改

第二个想法,这可能还不够;有关从胡须模板中调用函数的信息,请参阅此处:

http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-using-the-mustache-template-library/