2016-03-03 2 views
0

Я работаю с python и jinja. Когда я сделать шаблон я послал два параметра, как это:заменить параметр с помощью jquery

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"> 
... 

Я хочу взять атрибут 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

Первое решение (better):

Если вы хотите изменить lang, вы можете использовать i18next framework (http://i18next.com/docs/). Это гораздо более простое решение.

Второе решение (хуже):

Выберите с помощью JQuery элемента, который вы хотите изменить -> использовать пустую функцию() -> Render элемент с измененными значениями и назначьте его селектору с Append()

Вы также можете комбинировать оба решения. Напишите функцию для ретрансляции шаблона и измените динамически langauge. например:

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

Я уже реализовал меняющийся язык, так как я сказал, что параметр lang может быть: en или sr. Итак, основываясь на этом, я хочу изменить параметр внутри jinja? @hya – EgzEst

+0

Вы можете просто выбрать входы и заменить значения с помощью jQuery, но я бы рекомендовал использовать Nunjucks, который является портом jinja2, и поддерживает рендеринг на стороне клиента (http://mozilla.github.io/nunjucks/getting-started. HTML). – hya

Смежные вопросы