获取条带令牌后如何在表单中发送其他用户信息 - angular

how do I send additional user information in a form after getting stripe token - angular

所以我正在使用 Stripe 接受表格上的付款,该表格还包含其他信息 - 姓名 - 地址等。我正在使用以下库:

https://github.com/gtramontina/stripe-angular

我的表格设置如下:

<form id="signup-form" ng-submit="processForm()" stripe:form="saveCustomer">
      <!-- our nested state views will be injected here -->
          <div id="form-views" ui-view></div>
</form>

和嵌套表单视图的示例(非条纹内容)

<div class="form-group">
    <label for="name">Name</label>
    <input type="text" class="form-control" name="name" ng-model="formData.name" required>
</div>

还有条纹的东西:

<div class="form-group">
    <label for="card_number">Card Number</label>
      <input type="text" class="form-control" size="20" data-stripe="number" ng-model="formData.card"/>
    </div>

我的控制器(只有相关功能):

// function to process the form
    $scope.saveCustomer = function(status, response) {
            var $form = $('#signup-form');

            if (response.error) {
                // Show the errors on the form
                $form.find('.payment-errors').text(response.error.message);
                $form.find('button').prop('disabled', false);
              } else {
                // response contains id and card, which contains additional card details
                var token = response.id;
                var html = '<input type="hidden" name="stripeToken" ng-model=formData.'+token+'/>';
                // Insert the token into the form so it gets submitted to the server
                $form.append($(html));
                // and submit
                $form.get(0).submit();
                console.log(formData);
             }
        }

这是我的问题 - 如果 'saveCustomer' 函数等同于 stripe 文档中的 stripeResponseHandler 函数,那么他们将在向其附加令牌后提交表单。如果我要将数据添加到我的 formData 对象中,我该如何将此信息添加到该对象中。我现在的逻辑是,我正在添加链接到控制器中另一个函数(processForm)的 ng-submit 属性,但这看起来很垃圾,而且我无论如何都无法获取数据 - 我如何获取令牌和所有其他 formData 数据如果我在 saveCustomer 函数中看不到 formData,是否将其发送到单个函数?

不符合Angular直接使用jquery治疗DOM的方式。我建议您使用模型对象而不是处理 DOM。在您的示例代码中,模型对象是 'formData'.

如果您想访问$scope.formData,下面的代码可以帮助您实现。

$scope.formData = {}; 
var formData = $scope.formData;

$scope.saveCustomer = function(status, response) { 
    console.log(formData); // NOT $scope.formData; 
}