[英]JSrender: cannot access parent variable inside if condition
如标题所示,问题很明显:
在构造内:
{{if is_completed == 1}}
<div>
<p>{{:#parent.parent.data.myproperty}}</p>
</div>
{{/if}}
父属性不可见!
我通过在父循环中创建类似{{的电影〜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}}
块,并获取最近的“ item”视图(即重复{{for ...}}
块的项目视图)。
所以你会写:
{{:#get("item").data.myproperty}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.