TwitterTypeahead.js和Flask Jinja2模板

TwitterTypeahead.js和Flask Jinja2模板,flask,jinja2,typeahead.js,Flask,Jinja2,Typeahead.js,我试图通过flask应用程序定义typeahead.js的模板 我正在寻找的解决方案是覆盖默认(jinja2)模板,或者使用默认值定义新模板 更新: 这就是我目前所拥有的。“值”以外的任何其他值都不起作用 $('#search').typeahead({ name: 'Search', local: { value: 'String1', tokens: ['1','one'], name: 'StringTest' },

我试图通过flask应用程序定义typeahead.js的模板

我正在寻找的解决方案是覆盖默认(jinja2)模板,或者使用默认值定义新模板

更新:

这就是我目前所拥有的。“值”以外的任何其他值都不起作用

$('#search').typeahead({
    name: 'Search',
    local: {
        value: 'String1',
        tokens: ['1','one'],
        name: 'StringTest'
    },
    template: '<p>Template {{value}}{{name}}</p>', // Only shows "Template String1"
    engine: Hogan
});
$(“#搜索”)。请提前键入({
名称:'搜索',
本地:{
值:“String1”,
代币:['1','1'],
名称:“StringTest”
},
模板:“模板{{value}}{{name}}

”,//仅显示“模板字符串1” 引擎:霍根 });
下面是我的模板的外观

<script src='http://twitter.github.com/typeahead.js/releases/latest/typeahead.js'</script>   
<script src="http://twitter.github.com/hogan.js/builds/2.0.0/hogan-2.0.0.js"></script>
<script src="static/js/search.js"></script> // Hard coded to see if it works.. 

我知道有几种方法可以实现你想要的。最简单的方法是将typeahead.js代码分离到另一个文件中

因此,在主模板中,您可以有:

<script src="/js/typeahead.js" type="text/javascript"></script>
<script type="text/javascript">
    var prefetch_url = '{{ url_for('jsonData') }}'; // not so sure if you need the quote here?
</script>
<script src="/js/main.js" type="text/javascript"></script>

... your template code ...
由于Flask不会处理像
main.js
这样的静态文件,因此Jinja2不会与Hogan语法冲突,您可以在那里做任何您想做的事情


希望能有所帮助。

我知道有几种方法可以实现你想要的。最简单的方法是将typeahead.js代码分离到另一个文件中

因此,在主模板中,您可以有:

<script src="/js/typeahead.js" type="text/javascript"></script>
<script type="text/javascript">
    var prefetch_url = '{{ url_for('jsonData') }}'; // not so sure if you need the quote here?
</script>
<script src="/js/main.js" type="text/javascript"></script>

... your template code ...
由于Flask不会处理像
main.js
这样的静态文件,因此Jinja2不会与Hogan语法冲突,您可以在那里做任何您想做的事情


希望对您有所帮助。

您可以使用
{%raw%}
Jinja模板标记转义
{{}}
,如下所述:

$(“#搜索”)。请提前键入({
名称:'搜索',
本地:{
值:“String1”,
代币:['1','1'],
名称:“StringTest”
},
模板:{%raw%}模板{{value}{{{name}}

{%endraw%}, 引擎:霍根 });
您可以使用
{%raw%}
Jinja模板标记来转义
{{}
,如下所述:

$(“#搜索”)。请提前键入({
名称:'搜索',
本地:{
值:“String1”,
代币:['1','1'],
名称:“StringTest”
},
模板:{%raw%}模板{{value}{{{name}}

{%endraw%}, 引擎:霍根 });
I已更新。希望我的问题更清楚。我更新了。希望我的问题更清楚。我是必须合并node.js还是仍然从链接中包含hogan?谢谢你的帮助,我不知道nodejs部分,但我建议你像平常一样包括参考。我有,但我只能通过模板引用值。有什么想法吗?明白了。你的解决方案有帮助。非常感谢。我应该合并node.js还是仍然从链接中包含hogan?谢谢你的帮助,我不知道nodejs部分,但我建议你像平常一样包括参考。我有,但我只能通过模板引用值。有什么想法吗?明白了。你的解决方案有帮助。非常感谢你