我将条纹与我的角度应用程序集成在一起,如果可能的话,我希望能够更好地控制何时生成令牌,以便在用户流程中实现更多功能。更具体地说,我有几个表格(付款信息,送货地址,附加信息),我想保持单独,但我想同时处理它们。到目前为止,我使用此指令https://github.com/gtramontina/stripe-angular/blob/master/stripe-angular.js
angular.module('stripe', []).directive('stripeForm', ['$window',
function($window) {
var directive = { restrict: 'A' };
directive.link = function(scope, element, attributes) {
var form = angular.element(element);
form.bind('submit', function() {
var button = form.find('button');
button.prop('disabled', true);
$window.Stripe.createToken(form[0], function() {
var args = arguments;
scope.$apply(function() {
scope[attributes.stripeForm].apply(scope, args);
});
button.prop('disabled', false);
});
});
};
return directive;
}]);
它允许我在控制器中捕获响应但不触发标记化调用。
.controller('IndexController', function($scope, $rootScope) {
$scope.saveCustomer = function(status, response) {
$rootScope.user.stripeCustomerId = response.id;
$rootScope.user.save();
};
});
有什么想法吗?
答案 0 :(得分:0)
我完全把这复杂化了。我见过的所有条纹示例都是用jQuery完成的,所以我试图将其重新发明为有角度的。当我简单地研究条纹提供的方法时,它变得容易得多。例如,标记化看起来像Stripe.card.generateToken(card,callback());如果您从文档中提取正确的属性,则卡只是一个对象。所以把它扔进一个可点击的功能不是问题。