从twig模板上的数据库Unescape HTML字符串

时间:2015-04-03 20:19:08

标签: javascript symfony twig

我试图将描述(我的数据库中的字符串)转换为HTML。我正在使用{{ projet.description }}获取说明,但似乎在JavaScript中,"说明"导致我的脚本中的错误......所以我创建了一个包含我的描述的div,使其不可见,并使用innerHTML获取。

Twig代码

    <div id="desc">{{ projet.description }}</div>
    <div>
        <script type="text/javascript">
            var desc = document.getElementById("desc").innerHTML|e('js')|raw;
            document.write(desc);
        </script>
    </div>

CSS

#descr {
    display:none;
}

但现在,document.write()仍会返回类似&#34; <p><em>POKEMON</em></p>&#34;的字符串。但是,我想用HTML格式。

1 个答案:

答案 0 :(得分:2)

我几乎可以肯定HTML已被转义,因此请尝试一下:

<div id="desc">{{ projet.description|raw }}</div>

请参阅twig docs上的原始过滤器:raw

  

原始过滤器将值标记为&#34; safe&#34;,这意味着在   启用自动转义的环境,此变量不会启用   如果raw是应用于它的最后一个过滤器,则转义

此外:

var desc = document.getElementById("desc").innerHTML|e('js')|raw;

以上代码段在树枝上无效,因为它没有被有效的分隔符包围,例如&#34; {{ }}&#34;或&#34; {% %}&#34;。