По причинам, по которым я не буду здесь вдаваться, я использую jQuery ajax вместо Angular http. Поэтому я делаю ajax звонок на мой php сервер. Однако одна проблема заключается в том, что в случае успеха или ошибки все, что выполняется в блоках успеха / ошибки, ограничено ими. Я не могу получить код для взаимодействия с любыми другими переменными или функциями вне вызова ajax.
Я видел в потоке AngularJS, что я должен запустить $ scope.apply, однако $ scope не существует для Angular jQuery, очевидно.
Вот мой код:
jqueryAjaxEngine (prockey, sData) {
const DATA = 'prockey=' + prockey + sData;
console.log(DATA);
$.ajax({
data: DATA,
url: this.controllerUrl,
dataType: 'JSON',
type: 'POST',
beforeSend: function(m) {
if (m && m.overrideMimeType) {
m.overrideMimeType('application/json;charset=UTF-8');
}
},
success: function(data) {
console.log(data);
// the this.returnData is constricted to within this block, after this block
// this.returnData is null
this.returnData = data;
console.log(this.returnData);
this.succStatus = data.status;
// They tell me that setSwitch does not exist, however it is a function on my file
this.setSwitch(prockey, data);
},
error: function (xhr, status, errorThrown) {
console.log(xhr);
this.returnData = xhr;
console.log(this.returnData);
this.succStatus = xhr.status;
}
});
// this.setSwitch(data)
console.log(this.returnData);
return this.returnData;};