正如标题所说,问题很明显:
施工范围内:
{{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}}