Newer Version Available
More Readable Styling Markup with the join Expression
Markup can get messy when you specify the class names to apply based
on the component attribute values. Try using a join
expression for easier-to-read markup.
This example sets the class names based on the component attribute values. It’s readable, but the spaces between class names are easy to forget.
1<li class="{! 'calendarEvent ' +
2 v.zoomDirection + ' ' +
3 (v.past ? 'pastEvent ' : '') +
4 (v.zoomed ? 'zoom ' : '') +
5 (v.multiDayFragment ? 'multiDayFragment ' : '')}">
6 <!-- content here -->
7</li>Sometimes, if the markup is not broken into multiple lines, it can hurt your eyes or make you mutter profanities under your breath.
1<li class="{! 'calendarEvent ' + v.zoomDirection + ' ' + (v.past ? 'pastEvent ' : '') + (v.zoomed ? 'zoom ' : '') + (v.multiDayFragment ? 'multiDayFragment ' : '')}">
2 <!-- content here -->
3</li>Try using a join expression instead for easier-to-read markup. This example join expression sets ' ' as the first argument so that you don’t have to specify it for each subsequent argument in the expression.
1<li
2 class="{! join(' ',
3 'calendarEvent',
4 v.zoomDirection,
5 v.past ? 'pastEvent' : '',
6 v.zoomed ? 'zoom' : '',
7 v.multiDayFragment ? 'multiDayFragment' : ''
8 )}">
9 <!-- content here -->
10</li>You can also use a join expression for dynamic styling.
1<div style="{! join(';',
2 'top:' + v.timeOffsetTop + '%',
3 'left:' + v.timeOffsetLeft + '%',
4 'width:' + v.timeOffsetWidth + '%'
5)}">
6 <!-- content here -->
7</div>