APEX Plugin: Javascript Attributes
Recently I was developing an APEX dynamic action plugin and ran into a bit of an issue. One of the custom attributes that I defined was a yes/no attribute which returned "true" or "false" respectively.
When I was testing my plugin it always behaved as though the user had selected yes/true even though they selected no/false. After some debugging I saw that the plugin values in Javascript were strings. Clearly strings are not booleans and they behave differently when evaluated.
To resolve this problem I just changed my if statement:
//From if (this.action.attribute01) //do something//To if (this.action.attribute01.toLowerCase() == 'true') //do something
If you're new to JavaScript, here's how JavaScript handles strings when doing comparisons:
x = null; console.log(x, x ? true : false); x = ''; console.log(x, x ? true : false); x = 'false'; console.log(x, x ? true : false); x = 'true'; console.log(x, x ? true : false);Here are the results:
As you can see a string returns true if it contains some data.