带有Symfony / PHP7的把手/小胡子

时间:2017-11-23 14:12:48

标签: 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>
    </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”不存在。

当我将此代码放在简单的index.html w / o Symfony等中时,它可以工作。任何想法如何解决它?

2 个答案:

答案 0 :(得分:1)

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

如果你想一起使用Twig和Mustache,那么你需要对用于Mustache的花括号进行转义/双重编码,以便Twig不会首先尝试解析它们。

答案 1 :(得分:0)

有一个repo on Github,可让您为Handlebar模板定义自己的自定义分隔符。