Why does <ui:button>
work but <lightning:button>
does not work?
Component:
<aura:component>
<ltng:require
styles="{!$Resource.SLDS212 + '/assets/styles/lightning-design-system-ltng.css'}"
scripts="{!$Resource.jsLibraries + '/jsLibOne.js'}"
afterScriptsLoaded="{!c.scriptsLoaded}" />
<ui:button label="myButton" press="{!c.doSomething}"/>
<lightning:button name="myButton" onclick="{!c.doSome}"/>
</aura:component>
Controller:
({
doSomething: function(cmp, event, helper) {
var button = event.getSource().get("v.label");
alert(button);
},
doSome: function(cmp, event, helper) {
var button = event.getSource().get("v.name");
alert(button);
}
})
Best Answer
The name attribute is optional, use label
https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/aura_compref_lightning_button.htm
You may get an error on getSource() if you are on winter box, there seems to be a fix in Spring 17:
Lockerservice and event.getSource()
Winter 17 release : event.getSource is not a function on lightning:button