У меня возникла проблема с вызовом службы моих квартир в этом контроллере.Угловое обслуживание не вызвано .then()
$scope.checkout =() => {
$scope.stripe_err = null;
if ($scope.subscription.type === '') {
$scope.stripe_err = 'No subscription selected';
return;
}
Stripe.card.createToken($scope.stripeToken, stripeResponse);
}
let stripeReponse = (status, response) => {
if (status !== 200) {
$scope.stripe_err = status;
return;
} else {
$stripe.checkout(token, response.id)
.then((result) => {
$scope.receipt = result.data.receipt/100; // Stripe amount is in cents
$scope.totalPrice = '';
$scope.stripeToken = { number: '', cvc: '', exp_month: '', exp_year: '' };
})
.catch(err => console.error(err));
}
$apartments.postApt(token, $scope.userInfo); // The request finishes when my services is outside the .then()
};
, но когда я заменить параметры с неправильным один $apartments.postApt(result, $scope.userInfo);
тогда я получаю эту ошибку PUT http://localhost:7000/landlord-api/units/[object%20Object]?access_token=[object%20Object] 500 (Internal Server Error)
Это как мой $ квартиры обслуживания выглядит. Я не уверен, что его служба, потому что, если я вызову ее за пределами $stripe.checkout()
, она будет вызвана.
exports.$apartments = function ($http, $q) {
function postApt (landlord_id, newApt) {
var deferred = $q.defer();
$http.put('/landlord-api/units/' + landlord_id + '?access_token=' + landlord_id, newApt)
.then(function (result) {
return deferred.resolve(result);
})
.catch(err => deferred.reject(err));
return deferred.promise;
return {
postApt: postApt
}
}
ОБНОВЛЕНИЕ: Я до сих пор не решил. Я заметил, что если я поставлю свою услугу на квартиры в .then()
, запрос остается в ожидании, но если я вывешу его за пределы .then()
, он завершит запрос, и я получу соответствующий ответ.
Почему вы называете свои услуги '' '?! Как правило, '$' зарезервирован для объектов инфраструктуры. – dwjohnston
Вы правы. Может быть, я должен изменить это, чтобы избежать путаницы. – ken