templates - Mustache section values are overridden -


how output:

<h1>colors</h1> <li><strong>red</strong></li> <li><a href="#green">green</a></li> <li><a href="#blue">blue</a></li> 

from template:

<h1>{{header}}</h1> {{#bug}} {{/bug}}  {{#items}}   {{#first}}     <li><strong>{{name}}</strong></li>   {{/first}}   {{#link}}     <li><a href="{{url}}">{{name}}</a></li>   {{/link}} {{/items}}  {{#empty}}   <p>the list empty.</p> {{/empty}} 

this data:

{   "header": "colors",   "first": true,   "items": [       {"name": "red", "first": true, "url": "#red"},       {"name": "green", "link": true, "url": "#green"},       {"name": "blue", "link": true, "url": "#blue"}   ],   "empty": false } 

so first field not overridden.

currently output:

<h1>colors</h1> <li><strong>red</strong></li> <li><strong>green</strong></li> <li><a href="#green">green</a></li> <li><strong>blue</strong></li> <li><a href="#blue">blue</a></li> 

i'm testing here.

the first key defined @ 2 levels: @ item level, , @ root level.

when not defined @ item level, mustache engines digs in, , uses 1 defined @ root level. called mustache context stack, , have learnt hard way.

now answer simple, insn't it? in order prevent mustache engine dig in context stack , first @ root level, make sure first defined @ item level, all items. set false items first.


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -