gpt4 book ai didi

javascript - JSrender:如果条件无法访问父变量

转载 作者:行者123 更新时间:2023-11-30 08:51:10 26 4
gpt4 key购买 nike

如题所示,问题很明确:

在构造中:

{{if is_completed == 1}}
<div>
<p>{{:#parent.parent.data.myproperty}}</p>
</div>
{{/if}}

父属性不可见!

我通过在父循环中创建如下结构来解决它:{{for movies ~myproperty=myproperty}},并且 ~myproperty 在 IF 条件中可见,但是如果我有多个变量怎么办,如果我有多层嵌套怎么办数据结构?

最佳答案

{{if ...}} block 添加了另一个 View ,这意味着您需要添加一个 .parent 来逐步执行该 View ,如:{{:# parent.parent.parent.data.myproperty}}

你可以像你说的那样传入变量(~myproperty=...),它们对任何深度的嵌套都是可见的。

您的变量也可以是对象,例如当前数据对象:~myObj=#data:

{{sometag a=b ~myObj=#data}}
....
{{:~myObj.myproperty}}
...
{{/sometag}}

因此您不需要为每个属性设置一个单独的变量。

您还可以访问顶级数据对象并从那里向下钻取:

{{:~root.foo...myproperty}}

最后,您可以使用 #get("item") 逐步遍历任意数量的 {{if}} block 并获得最近的“项目” View (即重复 {{for ...}} block 的项目 View )。

所以你会写:

{{:#get("item").data.myproperty}}

关于javascript - JSrender:如果条件无法访问父变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com