pug - Escaping if/else in Jade template -
so have block of html in jade template loop:
each dude, in dudes div(class='someclass') div.otherstuff span.somecontent #{name}
i want apply data attribute top div when looping condition met, in case first dude, set this
each dude, in dudes if == 0 div(class='someclass, data-someattr='first dude') else div(class='someclass') div.otherstuff span.somecontent
setup causes div.otherstuff div
, span.somecontent
display on else condition. i've moved tab spaces around on items can't escape else , give div.otherstuff
, span.somecontent
both first dude , subsequent dudes after that. i've tried setting data attr variable , trying apply way without success.
what end doing around this:
each dude, in dudes if == 0 div(class='someclass, data-someattr='first dude') div.otherstuff span.somecontent else div(class='someclass') div.otherstuff span.somecontent
how escape if/else
dont have duplicate div.otherstuff
, span.somecontent
?
i believe best way using regular mixin or mixin attribute. can read more here
an example of how following:
// passing in index mixin makeadude(index) if index == 0 div(class="someclass", data-someattr="first") else div(class="someclass") // usage each dude, in dudes +makeadude(i)
if want support nesting here this:
// passing in index mixin makeadude(index) if index == 0 div(class="someclass", data-someattr="first") if block block else div(class="someclass") if block block // usage each dude, in dudes +makeadude(i) h1 embedded inside div.someclass
i think question best thing use mixin attribute
to similar
// pass nothing mixin makeanotherdude() div(class="someclass")&attributes(attributes) if block block // usage +makeanotherdude()(data-someattr="first") h1 embedded inside div.someclass
so in case using mixin attributes syntax might this:
each dude, in dudes if == 0 +makeanotherdude()(data-someattr="first") h2 other things here perhaps else +makeanotherdude()() h2 other things here perhaps
Comments
Post a Comment