In dust.js can the inital value of $idx not be zero based?
Asked Answered
H

3

5

If I am using the Index helper Is it possible to make the count start at 1 rather than 0. Both:

{@idx}{.}{/idx}

and

{$idx}

are zero based.

Does anyone know a way to do this?

It would be perfect if you could just do:

{$idx + 1}

but obviously that won't work.

Hierodule answered 8/2, 2013 at 20:56 Comment(1)
I am not answering you're question, but I assume this is for display. Have you thought about using CSS counters? css-tricks.com/numbering-in-styleCytherea
D
10

I guess you can use math helper in combination with $idx:

{@math key=$idx method="add" operand="1"/}
Deplane answered 8/2, 2013 at 21:56 Comment(0)
W
2

To make a use of @math in dust templates you need to add dust helpers which is by default excluded from dust core package.

The specific syntax that you need in order to "load" the dust helpers in node is:

var dust = require('dustjs-linkedin');
dust.helper = require('dustjs-helpers');

Incase you cannot add these helpers, which would be really strange decision, still you can create your own function in current code base like this which can be used instead of @gt or @math

var baseContext = dust.makeBase({
    position: function(chunk, context) {
        return context.stack.index + 1;
    },
  });

Now you can use {position} instead of ${idx} which will count the loop from 1 to n.

Winburn answered 26/2, 2013 at 20:39 Comment(0)
C
1

Put the math helper inside {@idx}

<table>
{#names}
<tr><td>{@idx}{@math key="{$idx}" method="add" operand="1"/}{/idx}</td>
    <td>{name}</td>
</tr>
{/names}
</table>
Cott answered 31/1, 2014 at 16:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.