Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS中的条带回调仅在我单击“保存”按钮两次时处理_Javascript_Angularjs_Callback_Stripe Payments - Fatal编程技术网

Javascript AngularJS中的条带回调仅在我单击“保存”按钮两次时处理

Javascript AngularJS中的条带回调仅在我单击“保存”按钮两次时处理,javascript,angularjs,callback,stripe-payments,Javascript,Angularjs,Callback,Stripe Payments,在我的AngularJS控制器中,我有: .... stripeResponseHandler = function (status, response) { if(response.error) { Toaster.pop('rejected', 'cross', 'We could not validate your card.'); } } $scope.handleNewCard = function () { Stripe.car

在我的AngularJS控制器中,我有:

  ....

  stripeResponseHandler = function (status, response) {
    if(response.error) {
      Toaster.pop('rejected', 'cross', 'We could not validate your card.');
    }
  }

  $scope.handleNewCard = function () {
    Stripe.card.createToken({
      number: $scope.number,
      cvc: $scope.cvc,
      exp_month: $scope.exp_month,
      exp_year: $scope.exp_year,
      name: $scope.name,
      address_line1: $scope.address_line1,
      address_line2: $scope.address_line2,
      address_zip: $scope.address_postcode,
      address_city: $scope.address_city,
      address_country: $scope.address_country
    }, stripeResponseHandler);
  };

  ...
.col-xs-6
   a.btn.large.blue.pull-left(ng-click='handleNewCard()')
    | Save
我认为:

  ....

  stripeResponseHandler = function (status, response) {
    if(response.error) {
      Toaster.pop('rejected', 'cross', 'We could not validate your card.');
    }
  }

  $scope.handleNewCard = function () {
    Stripe.card.createToken({
      number: $scope.number,
      cvc: $scope.cvc,
      exp_month: $scope.exp_month,
      exp_year: $scope.exp_year,
      name: $scope.name,
      address_line1: $scope.address_line1,
      address_line2: $scope.address_line2,
      address_zip: $scope.address_postcode,
      address_city: $scope.address_city,
      address_country: $scope.address_country
    }, stripeResponseHandler);
  };

  ...
.col-xs-6
   a.btn.large.blue.pull-left(ng-click='handleNewCard()')
    | Save
问题是回调函数只有在我单击两次Save按钮时才被处理。
奇怪的是,如果我只是在回调中执行一个console.log,它每次都会显示出来,但是只有在我单击两次save按钮时,Toaster.pop才会显示出来。

您是将
console.log
放在
if(response.error)
语句的内部还是外部?console.log在if(response.error)语句的外部检查是否每次单击时都发生回调。它每次都在发生,但是Toaster.pop没有发生,即使我把它也放在if检查之外。要触发Toaster.pop,我必须单击保存按钮两次。将
响应
转储到控制台-是
响应。在
Toaster.pop
不弹出的迭代上设置了错误
?我猜不是。