2014-01-12 121 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用更好的解決方案更新了我的答案 –