15

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

我使用 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>

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

4

2 回答 2

18

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

JSON

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

模板

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

确保“GA_googleFillSlot”可以在模板时从 mustache 的上下文中调用。

这符合 Mustache 的无逻辑特性:您想要的任何逻辑都应该嵌入到您传递给 Mustache 以开始使用的 json 中。

没有对此进行测试,但这应该可以。高温高压

于 2012-07-04T14:37:07.763 回答
0

您已经在脚本标签内,无需添加另一个:

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

编辑

再想一想,这可能还不够;有关从 mustache 模板中调用函数的信息,请参见此处:

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

于 2012-07-03T15:44:43.537 回答