2013-07-19 36 views
1

正如標題所說父變量,這個問題是清楚的:JSrender:不能訪問內如果條件

建設中:

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

的父屬性是不可見的!

我通過在父循環中創建像{{for movies〜myproperty = myproperty}}這樣的構造來解決它,並且〜myproperty在IF條件下是可見的,但是如果我有幾個變量,如果我有很多級別嵌套數據結構?

回答

5

{{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}}

+0

謝謝你,鮑里斯,您的解決方案幫助。 – Cassius