2016-03-03 82 views
0

我正在使用python和jinja。当我渲染模板我派了两个参数是这样的:用jquery替换参数

return render_template('mod_page/index.html', 
       types_first = utils.questions_first(), 
       types_second = utils.questions_second()) 

questions_firstquestions_second是两个相同的功能,这样的事情:

def questions_first(self): 
    return ['Name','Surname', 'Phone'] 

在索引页我有一个标签是这样的:

<html lang="en"> 
... 

我想带lang属性与jQuery,然后检查它是否是'en'我想用questions_first如果是'sr'我想用questions_second

我的问题是我怎么能代替参数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

第一溶液(更好):

如果你想改变lang,你可以使用i18next框架(http://i18next.com/docs/)。这是更简单的解决方案。

解决方法二(较差):

通过jQuery元素选择要更改 - >使用空()函数 - >渲染改变的值元素,并为其分配与追加()到选择

您也可以结合使用这两种解决方案。编写函数以重新渲染模板并动态更改语言。例如:

fn_or_elt.empty(); 
fn_or_elt.append(markup); 
fn_or_elt.i18n(); 
+0

我已经实现了改变语言,正如我所说的参数lang可以是:en或sr。那么基于我想改变内部参数的参数? @hya – EgzEst

+0

您可以选择输入并用jQuery替换值,但我会建议使用nunjucks,它是jinja2的端口,它支持客户端呈现(http://mozilla.github.io/nunjucks/getting-started。 HTML)。 – hya