【问题标题】:Python cheetah variables inside a #raw javascript block?#raw javascript块中的Python猎豹变量?
【发布时间】:2017-01-18 10:52:22
【问题描述】:

如果我有一个包含 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 等占位符引入这些变量的方法 蟒蛇字符串?
  • 或者以某种方式告诉#raw该块是什么并给出 那些变量作为参数呢?喜欢:

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

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

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

也许已经有解决方案了?

朱哈

【问题讨论】:

  • 在这种情况下,我会跳过 #raw-blocks 并改用 jQuery('#manuf').val() 等。

标签: javascript jquery python cheetah


【解决方案1】:

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

【讨论】:

  • 是的,需要一些半原始的东西,它有占位符并接受参数。
  • 恐怕我们还没有:)
  • 其实我觉得根本不可能。
猜你喜欢
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2017-11-18
  • 2012-08-12
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多