I wonder if it is possible to avoid using the .. syntax inside a custom helper.
Let's say that I have this helper :
Handlebars.registerHelper('for', function(from, to, incr, block) {
var accum = '';
for(var i = from; i < to; i += incr)
accum += block.fn(i);
return accum;
});
is it possible to use it without having to put .. for references inside it :
{{#for 0 5 1}}
{{#ifCond1OrCond2 (lookup ../bid this) (lookup ../ask this)}}
<tr>
<td>{{math this "+" 1}}</td>
<td>{{#with (lookup ../../bid this)}}{{quantity}}{{/with}}</td>
<td>{{#with (lookup ../../bid this)}}{{price}}{{/with}}</td>
<td>{{#with (lookup ../../ask this)}}{{price}}{{/with}}</td>
<td>{{#with (lookup ../../ask this)}}{{quantity}}{{/with}}</td>
</tr>
{{/ifCond1OrCond2}}
{{/for}}
Here is a fiddle https://jsfiddle.net/ChristopheThiry/f9wu07f4/ that show what is going on
Here is the syntax I'd like to use :
{{#for 0 5 1}}
{{#ifCond1OrCond2 (lookup bid this) (lookup ask this)}}
<tr>
<td>{{math this "+" 1}}</td>
<td>{{#with (lookup bid this)}}{{quantity}}{{/with}}</td>
<td>{{#with (lookup bid this)}}{{price}}{{/with}}</td>
<td>{{#with (lookup ask this)}}{{price}}{{/with}}</td>
<td>{{#with (lookup ask this)}}{{quantity}}{{/with}}</td>
</tr>
{{/ifCond1OrCond2}}
{{/for}}
I found myself a solution in documentation : using @root does the job as it starts from the root element.
{{#for 0 5 1}}
{{#ifCond1OrCond2 (lookup @root/bid this) (lookup ask this)}}
<tr>
<td>{{math this "+" 1}}</td>
<td>{{#with (lookup @root/bid this)}}{{quantity}}{{/with}}</td>
<td>{{#with (lookup @root/bid this)}}{{price}}{{/with}}</td>
<td>{{#with (lookup @root/ask this)}}{{price}}{{/with}}</td>
<td>{{#with (lookup @root/ask this)}}{{quantity}}{{/with}}</td>
</tr>
{{/ifCond1OrCond2}}
{{/for}}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.