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