正如标题所说,问题很明显:
施工范围内:
{{if is_completed == 1}}
 <div>
   <p>{{:#parent.parent.data.myproperty}}</p>
 </div>
{{/if}}
父属性不可见!
我通过在父循环中创建如下结构来解决它:{{for movies ~myproperty=myproperty}},并且 ~myproperty 在 IF 条件中是可见的,但是如果我有多个变量怎么办,如果我有多层嵌套数据结构怎么办?
正如标题所说,问题很明显:
施工范围内:
{{if is_completed == 1}}
 <div>
   <p>{{:#parent.parent.data.myproperty}}</p>
 </div>
{{/if}}
父属性不可见!
我通过在父循环中创建如下结构来解决它:{{for movies ~myproperty=myproperty}},并且 ~myproperty 在 IF 条件中是可见的,但是如果我有多个变量怎么办,如果我有多层嵌套数据结构怎么办?
该{{if ...}}块添加了另一个视图,因此意味着您需要添加一个 .parent 来逐步通过该视图,如下所示:{{:#parent.parent.parent.data.myproperty}}
您可以按照您所说的 ( ~myproperty=...) 传递变量,并且它们对任何嵌套深度都是可见的。
您的变量也可以是一个对象,例如当前数据对象  ~myObj=#data::
{{sometag a=b ~myObj=#data}}
    ....
    {{:~myObj.myproperty}}
    ...
{{/sometag}}
因此您不需要为每个属性使用单独的变量。
您还可以访问顶级数据对象并从那里向下钻取:
{{:~root.foo...myproperty}}.
最后,您可以使用#get("item")任何数量的块来逐步前进{{if}}并获得最近的“项目”视图(即重复{{for ...}}块的项目视图)。
所以你会写:
{{:#get("item").data.myproperty}}