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>