0
J'ai le code suivant. Une fois pour charger la page HTML, l'autre pour charger différentes sous-sections et relier les fonctions de rappel avec les boutons. Pouvez-vous me dire comment briser deux appels en ajax promesse et une fois réussie alors se lier uniquement les événements à boutonRompre les fonctions à Jquery différé ou promettre
function loadHtml(methodargs){
header=methodargs.header;
htmlname=methodargs.htmlname;
subsection=methodargs.subsection;
callbackfunction=methodargs.callbackfunction;
buttonfunctioanlities = methodargs.buttons;
$("#mainContentSubmit").off('click');
$('#maincontentbody').empty();
$("#maincontentheader").html(header);
//Function 1
if(htmlname != '')
$("#maincontentbody").load(ctx+"/loadpage?pagename="+htmlname, function(response, status, xhr) {
if (status != "error") {
$.each(callbackfunction, function(index, value) {
window[value]();
});
}
});
//Function 2
$.each(subsection,function(index,value){
var data = {
attributeName : value,
orgid : $('#orgidselector').find("option:selected").val()
};
$.ajax({
url: ctx+'orgattr/getAttributePage.json',
dataType: "html",
type: "POST",
data: JSON.stringify(data),
beforeSend: function(xhr) {
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
},
success: function(data, textStatus, jqXHR)
{
$('#maincontentbody').append(data);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert("getAttributePage error :"+jqXHR+":"+textStatus+":"+errorThrown);
console.log("getAttributePage error :"+jqXHR+":"+textStatus+":"+errorThrown);
}
});
});
//Bind callback functions with buttons
$.each(buttonfunctioanlities, function(k, v) {
formsubmitFunction=v.submitFunction;
formsubmitFunctionArgs=v.submitFunctionArgs;
submitbuttonid=v.submitbuttonid;
if(formsubmitFunction != ''){
if(formsubmitFunctionArgs.legth == 0){
$("#"+submitbuttonid).off('click').on('click', window[formsubmitFunction]);
}else{
$("#"+submitbuttonid).off('click').on('click', formsubmitFunctionArgs, window[formsubmitFunction]);
}
}
});
}