我真的是从Smarty开始,我不理解这个事实:
如果我将下一段代码放入模板index.tpl中
<script type="text/javascript">
function toAlert() {
alert('{$text}' );
}
</script>
我可以访问函数toAlert并显示Smarty变量{{$text}}的内容,但是如果我将此代码放入js文件lije javascript.js中,并尝试通过将链接放入de template来访问它:
我也不能访问这个函数。
谁能告诉我原因,或者帮助我在哪里可以找到这个特定的信息?谢谢你!!
发布于 2014-07-19 00:33:13
Smarty2需要"{“和"}”字符的转义,你可以使用{ldelim}和{redlim}单独转义它们,或者用{/literal}{/literal}将整个文本块换行。当有嵌入的smarty标签时,使用{ldelim}和{rdelim}通常更干净,所以示例:
<script type="text/javascript">
function toAlert() {ldelim}
alert('{$text}' );
{redlim}
</script>
Smarty 3可以方便地忽略由空格括起来的"{“和"}”字符,因此您的javascript示例将按原样工作。
发布于 2014-07-16 04:48:49
您应该将此代码放入TPL文件中,以使其正常工作。只有TPL文件被处理为Smarty文件,并且您可以使用Smarty变量。
您的代码在index.tpl文件中应该可以开箱即用,但如果不是这样,请尝试:
<script type="text/javascript">
{literal}
function toAlert() {
alert('{/literal}{$text}{literal}' );
}
{/literal}
</script>
https://stackoverflow.com/questions/24762237
复制相似问题