このコントローラ内で私の$ apartmentsサービスを呼び出す際に問題があります。角度サービスが呼び出されていません。
$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