2014-01-12 47 views
2

我使用symfony2并希望使用typeahead,我在树枝内包含配置,因此我无法呈现模板,因为此语法:{{ var }}与Twig's相同。 我该如何解决这个问题?在树枝内使用Typeahead模板

这是预输入代码:

$('.example-twitter-oss .typeahead').typeahead({ 
    name: 'twitter-oss', 
    prefetch: '../data/repos.json', 
    template: [ 
    '<p class="repo-language">{{language}}</p>', 
    '<p class="repo-name">{{name}}</p>', 
    '<p class="repo-description">{{description}}</p>' 
    ].join(''), 
    engine: Hogan 
}); 

回答

3

编辑

可以使用{% verbatim %}标签(如1.12)或{% raw %}标签(之前1.12)做临时忽略嫩枝令牌:

{% verbatim %} 
$('.example-twitter-oss .typeahead').typeahead({ 
    name: 'twitter-oss', 
    prefetch: '../data/repos.json', 
    template: [ 
    '<p class="repo-language">{{language}}</p>', 
    '<p class="repo-name">{{name}}</p>', 
    '<p class="repo-description">{{description}}</p>' 
    ].join(''), 
    engine: Hogan 
}); 
{% endverbatim %} 

我所知道的唯一的解决办法是用呼应嫩枝这些元素:

$('.example-twitter-oss .typeahead').typeahead({ 
    name: 'twitter-oss', 
    prefetch: '../data/repos.json', 
    template: [ 
    '<p class="repo-language">{{ '{{language}}' }}</p>', 
    '<p class="repo-name">{{ '{{name}}' }}</p>', 
    '<p class="repo-description">{{ '{{description}}' }}</p>' 
    ].join(''), 
    engine: Hogan 
}); 
+0

我可以直接使用树枝引擎? – Sekai

+0

否则,你的回答是正确的亲爱的先生,因为symfony2使用Twig来渲染HTML,我不认为需要包括像Hogan这样的额外引擎。 如果你可以请说出你的想法,我会成为gratefull! – Sekai

+0

@Sekai用更好的解决方案更新了我的答案 –