使用}到smarty字符串

时间:2011-03-14 16:15:41

标签: templates smarty

我试图在一串聪明的模板中使用关键符号'}'但它会产生错误。这个问题只有“}”而不是“{”。 我需要打印:

var naciones = [{label:'Country',value:'1'},{label:'Country',value:'2'}];

溶液:

var naciones = [{/literal}{foreach from=$paises item=pa}{literal}{label:"{/literal}{$pa->getNacionalidad()}{literal}", value:"{/literal}{$pa->getId()}{literal}"},{/literal}{/foreach}{literal}];

示例:

{literal}
<script type="text/javascript">
var naciones = [{/literal}
{foreach from=$paises item=pa}
{'{label:"'|cat:$pa->getNacionalidad()|cat:'", value:"'|cat:$pa->getId()|cat:'"'}{cat:'"}, '}{/foreach}{literal}];
$('#nacionalidad-ac').autocomplete({
  source:naciones,
  change: function(event, ui){
    $('#nacionalidad').val(ui.item.value);
  }
});
</script>
{/literal}

感谢

2 个答案:

答案 0 :(得分:2)

您可以使用{literal}来停止解析。所以一个带有'{'的智能模板看起来像

This is just a text with a {$smartyString}
There is also an {literal} } {/literal} sign in here that could give you some trouble.

答案 1 :(得分:2)

您需要{literal} {/literal}标记才能正确转义Smarty模板中的花括号。对于具有大括号的内联Javascript也是必需的。