如果我在其中包含javascript的#raw块,有时我需要从该javascript访问一些python变量(示例中为$ foo)。

#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


首先,这看起来很难看,而且代码也不那么可读。我想在单行中使用if运算符。

但是那里:


一种使用%s等占位符引入这些变量的方法
python字符串?
或以某种方式告诉#raw该区块是什么并给出
那些变量作为参数?喜欢:

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

就像在#def define块中一样,允许像函数调用这样的参数。


其实我更想第二种方式,也许它不应该被称为#raw,但是它可能是特定于原始内容的,例如#ecmascript()... #end ecmascript?

也许已经有解决方案了?

朱哈

最佳答案

好吧,它要么是原始的,要么不是原始的,即已解析。如果要在块内分析变量,则该块不能是原始的。您必须在已解析的块中转义美元符号。

关于javascript - #raw javascript块中的Python猎豹变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41717448/

10-12 18:38