簡體   English   中英

JSrender:如果條件不能訪問內部的父變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM