1

如果我有一个包含 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 运算符。

但是有没有:

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

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

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

实际上我更喜欢第二种方式,也许它不应该被称为#raw,但它可以是特定于原始内容的,比如#ecmascript() ... #end ecmascript?

也许已经有解决方案了?

朱哈

4

1 回答 1

1

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

于 2017-05-07T21:00:22.953 回答