Updated:
Apex Code:
public class MyAccountsController {
@auraEnabled
public Static List<Account> getAccounts(Id accountID){
List<Account> accountList = [Select Id,Name,Account_text__c,
AccountNumber,Website,Type,Industry,AnnualRevenue,Rating
FROM Account WHere id =: accountID];
return accountList;
}
@auraEnabled
public static Map<String,String> saveAccount(List<Account> accountList1){
Map<String,String> resultMap = new Map<String,String>();
try{
system.debug('saveAccount:'+accountList1);
update accountList1;
resultMap.put('status','success');
resultMap.put('message','Data saved successfully');
}
catch(Exception e){
resultMap.put('status','error');
resultMap.put('message',e.getMessage());
}
return resultMap;
}
}
The Apex method is not been called. I check debug statements and also Console logs.
Controller:
({
saveAccount : function(component, event, helper) {
var btn = event.getSource();
var name = btn.get('v.name');
if(name=='save'){
helper.saveAccounts(component, event, helper);
}
}
})
Helper:
In helper class the saveAccount method is been called and im setting the Params. After that the setCallbck() method is not been called. I could see till the console log before the callback function. Is it because im using the setCallback twice in the process.??
({
fetchAccounts : function(component, event, helper)
{
var action = component.get("c.getAccounts");
var accountId = component.get("v.recordId");
//var toastEvent = $A.get('e.force:showToast');
action.setParams({
accountID : accountId
});
Console.log('test'); // I could see upto this
action.setCallback(this, function(response){
var state = response.getState();
if(state ==='SUCCESS'){
var accountList = response.getReturnValue();
component.set("v.accountList",accountList);
}
else{
alert('Error in getting data');
}
});
$A.enqueueAction(action);
},
saveAccounts : function(component, event, helper){
var accountList = component.get("v.accountList");
console.log(accountList);
var saveAction = component.get("c.saveAccount");
var toastEvent = $A.get('e.force:showToast');
saveAction.setParams({
accountList : accountList
});
saveAction.setCallback(this, function(response){ // Not working
var state = response.getState();
var btn = event.getSource();
console.log('test');
if(state === 'SUCCESS'){
console.log('test Success');
var dataMap=response.getReturnValue();
if(dataMap.status == 'success'){
toastEvent.setParams({
'title' : 'Success!',
'type' : 'success',
'mode' : 'dismissable',
'message' : dataMap.message
});
toastEvent.fire();
}
else if(dataMap.status =='error'){
toastEvent.setParams({
'title' : 'Error!',
'type' : 'error',
'mode' : 'dismissable',
'message' : dataMap.message
});
toastEvent.fire();
}
}
else{
alert('Error in getting data');
}
});
console.log('last'); // I can see this log.
$A.enqueueAction(saveAction);
}
})
setCallback()
function use is to execute after the queue of actions returns ,so only you seeing last console log. Can you edit a question with apex class method so its easy to debug might be you missing something there.