所以我使用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'函数等同于条带文档中的stripeResponseHandler函数,那么它们在将标记附加到其后提交表单。如果我要将数据添加到我的formData对象中,如何将此信息添加到该对象中。我现在的逻辑是我在控制器中添加了连接到另一个函数(processForm)的ng-submit属性,但这看起来很垃圾,无论如何我都无法获取数据 - 如何获取令牌和所有其他formData数据如果我在saveCustomer函数中看不到formData,将它发送到服务器?
答案 0 :(得分:1)
它通过使用jquery直接与Angular-way直接对待DOM。我建议你使用模型对象而不是处理DOM。在示例代码中,模型对象是'formData'。
如果你想访问$ scope.formData,下面的代码可以帮助你这样做。
$scope.formData = {};
var formData = $scope.formData;
$scope.saveCustomer = function(status, response) {
console.log(formData); // NOT $scope.formData;
}