2017-01-18 2 views
1

Если у меня есть блок #raw, в котором есть javascript, и иногда мне нужно получить доступ к некоторым переменным python ($ foo в примере примера) из этого javascript.Переменные гепарда Python внутри блока javascript #raw?

#raw 

<script type="text/javascript" charset="utf-8" > 
    if ( 
     #end raw 
      $foo 
     #raw 
     and $('#manuf').val()) { 
      getNextFreeProdCode(
      $('#category option:selected').val(), 
      $('#subCat option:selected').val(), 
      $('#manuf option:selected').val() 
      ); 
     } 
    </script> 
#end raw 

Прежде всего, это выглядит уродливым и не очень читаемым кодом. Я хотел бы иметь оператор в одной строке.

Но есть:

  • способ ввести эти переменные с некоторыми заполнителей, как% s в питона строк?
  • Или какой-то способ рассказать #raw что это за блок и дать эти переменные для него как аргумент? Как:

    #raw($foo, $bar) . if ($(#manuf).val() or $foo) { fooBar($bar); . . . } #end raw

    так же, как в #DEF определить блок позволяет аргументы как вызов функции.

На самом деле я хотел бы второй путь больше, и, возможно, это не следует называть #raw, но это может быть сырым содержанием конкретных, как #ecmascript() ... #end ECMAScript?

Возможно, решение уже существует?

Юха

+1

В этом случае я бы просто пропустил # raw-blocks и вместо этого использовал jQuery ('# manuf'). Val() и т. Д. –

ответ

0

Ну, это либо сырые или не сырье, т.е. разобран. Если вы хотите проанализировать переменные внутри блока, блок не может быть сырым. Вы должны избегать знаков доллара в анализируемом блоке.