JSRender loses value in for loop
-
Why does the value inside the for loop produce no result while the one outside does ???
value:{{:~value}} <---produces a value
{{for ~range(25)}}
value:{{:value}} <--- produces no result
{{/for}}
-
well there is different context inside the loop
in your case I believe you want to use
value: {{:#data}}
, but I recommend to check jsrender docs
-
Sorry Jan, you need more context.
The loop is in a child template, full contents are
value:{{:value}} <-- this produces value <div class="header-text pull-right"> {{if value == 0}} <p> {{:value2}}</p> {{else}} <table class="risk-rating"> <tr class="gradient"> {{for ~range(25)}} value:{{:value}} <-- this does not <td class="r{{>#data + 1}} {{if value == (#data + 1)}} active{{/if}}"></td> <---This if is my goal {{/for}} </tr> </table> {{/if}} </div>
it's being invoked by
{#child V2-Asset-Score-Indicator @data.RiskScore={{:RiskScore}} @data.RiskDescription={{:FullRiskDescription}} @template.engine=jsrender @template.recipe=html @options.language=sp}
-
Hm. I think my answer still applies. If you run
for
loop. The current context is the element in the array.
Check the jsrender documentation how to access the parent context.
http://borismoore.github.io/jsrender/demos/step-by-step/11_accessing-parent-data.html
-
Thanks, Jan. using {{if #parent.parent.data.value == (#data + 1)}} worked