我正在使用python和jinja。当我渲染模板时,我发送了两个这样的参数:
return render_template('mod_page/index.html',
types_first = utils.questions_first(),
types_second = utils.questions_second())
questions_first
和questions_second
是两个相同的函数,如下所示:
def questions_first(self):
return ['Name','Surname', 'Phone']
在索引页面中,我有一个这样的标签:
<html lang="en">
...
我想使用jQuery获取lang
属性,然后检查它是否为'en'
我想使用questions_first
如果它是'sr'
我想使用questions_second
1}}。
我的问题是如何在jinja代码中替换参数types_first
或放在那里,我不知道该怎么做,我试着这样做:
<script>
$(document).ready(function(e){
var language = $('html').attr('lang');
var selectedFunction;
if(language == "sq"){
selectedFunction = "sq";}
else{
selectedFunction = "sr"; }
</script>
....
<p> Questions: </p>
{{ _({% for type in types_first %}) }}
<div class="checkbox">
<label><input type="checkbox" value="{{ type }}">{{ type }}</label>
</div>
{% endfor %}
答案 0 :(得分:0)
第一个解决方案(更好):
如果您想更改lang,可以使用i18next框架(http://i18next.com/docs/)。这是一个更简单的解决方案。
第二种解决方案(更糟糕):
通过您想要更改的jQuery元素进行选择 - &gt;使用empty()函数 - &gt;渲染具有更改值的元素,并使用append()
将其指定给选择器您也可以组合这两种解决方案。编写函数以重新渲染模板并动态更改语言。 e.g:
fn_or_elt.empty();
fn_or_elt.append(markup);
fn_or_elt.i18n();