2016-03-03 80 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