Я создал функцию управления отправкой данных на сервер. Я хочу вернуть ответ $http
когда он будет успешным.
Мой контроллер: (Когда я вызываю функцию)
var myResponse = sendData(inputValueArray, url, onSuc, onErr, $http);
// Nothing happen here:
alert(myResponse);
Моя функция для отправки данных:
function sendData(inputArray, url, onSuccess, onErr, $http) {
var serverResponse = "";
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$http({
method: 'POST',
url: url,
data: {
myData: inputArray
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
if (response.res == true) {
onSuccess();
serverResponse = response;
}
else {
onErr();
}
})
.error(function(data, status, headers, config) {
onErr();
});
return serverResponse;
}
Вы возвращаете serverResponse
прежде чем у него будут какие-либо данные из обратного вызова. Вместо этого попробуйте что-то вроде этого:
function sendData(inputArray, url, onSuccess, onErr, $http) {
var serverResponse = "";
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
return $http({
method: 'POST',
url: url,
data: {
myData: inputArray
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
}
И тогда вы используете его так
sendData
.success(function(response) {
if (response.res == true) {
onSuccess();
serverResponse = response;
alert(serverResponse); // ************
}
else {
onErr();
}
})
.error(function(data, status, headers, config) {
onErr();
});
controller
. Так что не просто предупреждение. Также это более гибко для меня. Спасибо :)