代码之家  ›  专栏  ›  技术社区  ›  hengyue li

金贾街区的各种各样的东西是什么?

  •  0
  • hengyue li  · 技术社区  · 6 年前

    首先,我不是在问关于循环的事情!
    在jinja中,我对块内外定义的变量的有效范围感到困惑。例如,如果我定义{%set a=…%}在一个块中,我可以在另一个块中使用它吗?如果我在超级类中定义它们,在子类中定义它们,我可以在什么样的范围内使用它们?我发现有时它是从一个街区传递到另一个街区(或从这里传递到那里),有时不是。我找不到任何文件来解释这一点。
    (我的意思是“pass”直接使用{{a},它返回有效值。)

    1 回复  |  直到 6 年前
        1
  •  0
  •   hengyue li    6 年前

    变量 block , for , macro filter 都是本地人。它们仅在这些块内有效。
    可以找到详细信息 here 是的。举个例子:

    ……源代码::jinja

    {% macro angryhello name %}
      {% set angryname = name|upper %}
      Hello {{ name }}. Hello {{ name }}!
      HELLO {{ angryname }}!!!!!!111
    {% endmacro %}
    

    变量 angryname 只存在于宏观内部,而非外部。