小编Wil*_*res的帖子

Braintree多个设置调用在多个onPaymentMethodReceived事件中产生

我正在使用角度,在angularUI模式窗口中,我想显示Braintree中的Drop In表单以获得付款方式.因此,我创建了通常的form(partial.html):

<form id="creditCard" >
   <div id="dropin"></div>  
   <button type="submit" id="btnPay" >Pay</button>  
</form>
Run Code Online (Sandbox Code Playgroud)

然后我用这个显示模态:

var modalInstance = $modal.open({
   templateUrl: 'partial.html',
   controller: 'ModalController'
});
Run Code Online (Sandbox Code Playgroud)

ModalController包含对Braintree设置的调用:

braintree.setup($scope.clientToken, 'dropin', {
   container: 'dropin',
   onPaymentMethodReceived: function (result) {
       $scope.$apply(function() {
           $scope.success = true;
           // Do something else with result
       });
   }
});
Run Code Online (Sandbox Code Playgroud)

这将很好地显示braintree的Drop In表单(设置生成表单)并接受信用卡和到期日期,到目前为止一切正常.

问题是,每次调用模态时,都会执行ModalController,因此braintree.setup()也会执行.然后,当我输入信用卡号码和到期日期并点击付款时,onPaymentMethodReceived()每次设置执行都会触发一次事件!也就是说,如果我第一次调用模态,它将触发事件一次,第二次触发它两次,依此类推.就像每次调用setup时一样,会创建一个新的事件挂钩.

有关如何避免这种情况的任何想法?有没有办法"解除绑定" onPaymentMethodReceived()事件处理程序?我需要多次调用设置,因为每次调用模态时,clientToken可能已经更改.

感谢您提供帮助的任何帮助或指针.

javascript braintree angularjs

10
推荐指数
1
解决办法
1269
查看次数

Java 正则表达式:为什么 \177 转义码无效?

我正在使用常见的正则表达式来验证电子邮件。模式是这样的:

(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*")@((?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$)|\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$
Run Code Online (Sandbox Code Playgroud)

以防万一,我确实在java中添加了所有\转义,所以这是java评估的最终模式。它适用于普通的在线正则表达式评估器,但在 Java 中运行时会抛出

java.util.regex.PatternSyntaxException:索引 103 附近非法/不受支持的转义序列

这是 \177 代码。为什么会这样,为什么该代码是非法的,为什么它可以在在线验证器中工作?

java regex

0
推荐指数
1
解决办法
960
查看次数

标签 统计

angularjs ×1

braintree ×1

java ×1

javascript ×1

regex ×1