我真的从Smarty开始,我不明白这个事实:
如果我将下一个代码放在我的模板index.tpl
中<script type="text/javascript">
function toAlert() {
alert('{$text}' );
}
</script>
我可以访问函数toAlert并显示Smarty变量{{$ text}}的内容,但如果我将此代码放入js文件lije javascript.js中,我尝试通过放入de模板来访问它链接:
我也无法访问该功能。
任何人都可以告诉我为什么或帮助我能找到这个具体信息吗?谢谢!!
答案 0 :(得分:3)
Smarty 2需要擒纵“{”和“}”字符,您可以使用{ldelim}和{redlim}单独转义它们或使用{literal} {/ literal}包装整个文本块。当有嵌入式智能标签时,使用{ldelim}和{rdelim}通常更干净,例如:
<script type="text/javascript">
function toAlert() {ldelim}
alert('{$text}' );
{redlim}
</script>
Smarty 3方便地忽略了由空格包围的“{”和“}”字符,因此您的javascript示例将按原样运行。
答案 1 :(得分:2)
您应该将此代码放在TPL文件中以使其正常工作。只有TPL文件被处理为Smarty文件,你可以在那里使用Smarty变量。
您的代码放置应该在index.tpl文件中开箱即用,但如果没有尝试:
<script type="text/javascript">
{literal}
function toAlert() {
alert('{/literal}{$text}{literal}' );
}
{/literal}
</script>