首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在closure soy文件中正确使用javascript?

如何在closure soy文件中正确使用javascript?
EN

Stack Overflow用户
提问于 2013-06-28 08:06:40
回答 1查看 5.1K关注 0票数 2

我刚刚加入了一个团队,该团队使用java中的google-closure来构建soyfile的站点输出。这在html上运行得很好,但目前它对javascript来说却相当丑陋。当前的方法是将javascript放在{literal}中,这意味着我们得不到任何好处。下面是我们正在做的一个示例:

代码语言:javascript
复制
{namespace forms autoescape="contextual"}
{template myForm}
//.... stuff happens

{call js.myFormJs data="$someParam" /}

js:

代码语言:javascript
复制
{namespace forms autoescape="contextual"}
/**
 * @param foo
 */
{template myForm}
<script type="text/javascript">
{literal}

//js stuff happens

var myVariable {/literal}{$foo}{literal};

//js stuff happens

{/literal}
</script>
{/template}

我们还在某些地方使用{if}块中的soy参数来确定是否生成了整个脚本部分。如上所示,这些js soy文件几乎总是作为其他siy文件的一部分被调用,通常都是html。

所以我的问题是,我们应该做什么?我查看了|escapeJs标志,但我找不到应用它的位置。去掉{literal}会导致渲染错误和所有的javascript大括号。有没有更好的方法来做这件事?我应该为js使用soy文件吗(我开始怀疑我们不应该这样做)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-28 17:35:30

这里有几种方法,最好的方法是在模板之外生成你的javascript。你也可以用{lb}和{rb}替换你的花括号,但这会使代码几乎不可读,我敢肯定。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17355230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档