This has been answered for visualforce, apex, html etc, but couldn't find anything for within a lightning markup.
<aura:attribute name="mode" type="String"/>
<aura:attribute name="selectedOption" type="String" default="{!if(v.mode == 'overlay', 'Closed', 'Open')}"/>
Now I need something like below so I could use pass it directly to a SOQL behind the scene:
<aura:attribute name="staticFilterCondition" type="String" default="{!'Status__c = \'' + v.selectedOption + '\''"/>
As you can see, the default value of staticFilterCondition
attribute must be Status__c = 'Open'
or Status__c = 'Closed'
based on selectedOption
. How to? I know this can be done via init
, but wondering if there is a way to directly handle this in the markup?
I looked at the expression functions and tried below but no luck. Returns Status__c = Open
<aura:attribute name="staticFilterConditionPart1" type="String" default="Status__c = "/>
<aura:attribute name="staticFilterConditionPart2" type="String" default="'"/>
<aura:attribute name="staticFilterConditionPart3" type="String" default="{!concat(concat(v.staticFilterConditionPart1, staticFilterConditionPart2), v.selectedOption)}"/>
<aura:attribute name="staticFilterConditionPart4" type="String" default="'"/>
<aura:attribute name="staticFilterCondition" type="String" default="{!concat(v.staticFilterConditionPart3, staticFilterConditionPart4)}"/>
doInit
as it's pretty anti-pattern to place so much logic inside an attribute.