我需要将一些JavaScript代码内联到Smarty模板文件中,而这些{ldelim} {rdelim}东西使我丧命。有没有办法告诉smarty忽略块的标记并按原样输出它?类似于xml中的CDATA块吗?

以防万一:这是现在的javascript简单外观:

$(function() {ldelim}
        $( "#slides" ).accessNews({ldelim}
            speed :  "{$speed}",
            slideBy : 1
        {rdelim});
{rdelim});


令人毛骨悚然吧?

最佳答案

重新更新:您可以使用{literal} .... insert content here {/literal}关闭整个块的Smarty变量解析。

旧答案:由于这个确切的原因,我想将默认的定界符更改为其他字符。 (据我所知,尽管这只能在整个项目中完成,所以您必须查看它是否适合您。)

例如

<( $variablename )>


(只是我个人的最爱,请使用适合您的任何方式)

要更改的变量是rightDelimiterleftDelimiter属性。 Documentation

$smarty = new Smarty();
$smarty->left_delimiter =  '<(';
$smarty->right_delimiter = ')>';

10-07 19:06
查看更多