smarty初始属性中 其中的delimiter属性相信有很多人都定义为默认了吧,这既美观,又便于书写,条件只是在特殊的地方加入{literal}就可以了
但是呢,这是问题来了
当我们没有定义smarty初始属性 delimiter时
它默认为{} 这个
但当我们想在一段javascript代码中输入smarty分配的变量就出问题了
因为本身在javascript的外面就嵌套着一个{literal}
所以当再次把smarty分配过来的变量在javascript里输出时,它就变成了一段普通的字符串输出了
解决之道:在已经定义{literal}的代码内 加入smarty
可以这样书写
{/literal}{$name}{literal} 这样就避免了直接输出
建议:还是尽量将delimiter自定义一下 避免出现上述情况