Javascript 带Symfony/PHP7的把手/胡须

Javascript 带Symfony/PHP7的把手/胡须,javascript,php,symfony,handlebars.js,Javascript,Php,Symfony,Handlebars.js,我正在尝试使用把手模板,但进展不太顺利 在*.html.twig中,我有: <script id="entry-template" type="text/x-handlebars-template"> <div class="entry"> <h1>{{title}}</h1> <div class="body"> {{body}} </div>

我正在尝试使用把手模板,但进展不太顺利

在*.html.twig中,我有:

<script id="entry-template" type="text/x-handlebars-template">
    <div class="entry">
        <h1>{{title}}</h1>
        <div class="body">
            {{body}}
        </div>
    </div>
</script>

<span id="demo">
</span>

<script>
    var source   = document.getElementById("entry-template").innerHTML;
    var template = Handlebars.compile(source);
    var context = {title: "My New Post", body: "This is my first post!"};
    var html    = template(context);
    document.getElementById("demo").innerHTML = html;    
</script>

{{title}}
{{body}}
var source=document.getElementById(“条目模板”).innerHTML;
var template=handlebar.compile(源代码);
var context={title:“我的新帖子”,body:“这是我的第一篇帖子!”;
var html=模板(上下文);
document.getElementById(“demo”).innerHTML=html;
还有一个错误:

变量“title”不存在


当我把这段代码放在simpleindex.html中,没有Symfony等,它就可以工作了。有没有办法修复它?

这是因为Twig也是一种HTML模板语言,它也使用
{…}
语法来表示变量,就像Mustache一样,所以Twig在输出HTML之前试图解析它

如果您想同时使用Twig和Mustache,则需要对用于小胡子的花括号进行转义/双重编码,以便Twig不会首先尝试解析它们。

有一种方法可以让您为把手模板定义自己的自定义分隔符。

可能的重复项