From 3ddbe4978f028fa29979901ca3ab7067e9b8a469 Mon Sep 17 00:00:00 2001 From: Joel Stenkvist Date: Wed, 18 Oct 2017 10:06:50 +0200 Subject: [PATCH] Fixed issue 24 where publishable-key could not be loaded from controller settings --- angular-stripe-checkout.js | 9 ++++++--- angular-stripe-checkout.min.js | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/angular-stripe-checkout.js b/angular-stripe-checkout.js index f973571..b7b29fd 100644 --- a/angular-stripe-checkout.js +++ b/angular-stripe-checkout.js @@ -44,9 +44,9 @@ angular.module(MODULE_NAME,[]) .provider('StripeCheckout',StripeCheckoutProvider); -StripeCheckoutDirective.$inject = ['$parse', 'StripeCheckout']; +StripeCheckoutDirective.$inject = ['$parse', '$timeout', 'StripeCheckout']; -function StripeCheckoutDirective($parse, StripeCheckout) { +function StripeCheckoutDirective($parse, $timeout, StripeCheckout) { return { link: link }; function link(scope, el, attrs) { @@ -54,7 +54,10 @@ function StripeCheckoutDirective($parse, StripeCheckout) { StripeCheckout.load() .then(function() { - handler = StripeCheckout.configure(getOptions(el)); + // $timeout FIXES bug to load in StripePublishableKey from controller $scope + $timeout(function() { + handler = StripeCheckout.configure(getOptions(el)); + }, 50); }); el.on('click',function() { diff --git a/angular-stripe-checkout.min.js b/angular-stripe-checkout.min.js index f0274fc..5b98945 100644 --- a/angular-stripe-checkout.min.js +++ b/angular-stripe-checkout.min.js @@ -1 +1 @@ -(function(){"use strict";var e="stripe.checkout";var t="https://checkout.stripe.com/checkout.js";var n={address:["data-address","boolean"],alipay:["data-alipay","boolean-or-auto"],alipayReusable:["data-alipay-reusable","boolean"],allowRememberMe:["data-allow-remember-me","boolean"],amount:["data-amount","number"],billingAddress:["data-billing-address","boolean"],bitcoin:["data-bitcoin","boolean"],currency:["data-currency","string"],description:["data-description","string"],email:["data-email","string"],image:["data-image","string"],key:["data-key","string"],label:["data-label","string"],locale:["data-locale","string"],name:["data-name","string"],color:["data-color","string"],panelLabel:["data-panel-label","string"],shippingAddress:["data-shipping-address","boolean"],zipCode:["data-zip-code","boolean"]};var a;if(typeof module!=="undefined"&&typeof module.exports==="object"){a=require("angular");module.exports=e}else{a=window.angular}var o=a.extend;a.module(e,[]).directive("stripeCheckout",r).provider("StripeCheckout",i);r.$inject=["$parse","StripeCheckout"];function r(e,t){return{link:n};function n(n,a,o){var r;t.load().then(function(){r=t.configure(u(a))});a.on("click",function(){if(r)r.open(u(a)).then(function(t){var a=e(o.stripeCheckout)(n);if(typeof a==="function")a.apply(null,t)})})}}function i(){var e={};this.defaults=function(t){o(e,t)};this.load=function(e){return e.load()};this.load.$inject=["StripeCheckout"];this.$get=function(t,n){return new l(t,n,e)};this.$get.$inject=["$document","$q"]}function l(e,t,n){var a={};var r;this.configure=function(e){return new c(t,o({},n,a,e))};this.load=function(){if(!r)r=s(e,t);return r};this.defaults=function(e){o(a,e)}}function c(e,t){var n,a;var r=StripeCheckout.configure(o({},t,{token:function(e,o){if(t.token)t.token(e,o);a=true;n.resolve([e,o])},closed:function(){if(t.closed)t.closed();if(!a)n.reject()}}));this.open=function(t){n=e.defer();a=false;r.open(t);return n.promise};this.close=function(){a=false;r.close();if(t.closed)t.closed();if(n)n.reject()}}function u(e){var t,a,o,r={};for(t in n){if(!n.hasOwnProperty(t))continue;a=n[t];o=d(e.attr(a[0]),a[1]);if(o!=null)r[t]=o}return r}function s(e,n){var a=n.defer();var o=e[0];var r=o.createElement("script");r.src=t;r.onload=function(){a.resolve()};r.onreadystatechange=function(){var e=this.readyState;if(e==="loaded"||e==="complete")a.resolve()};r.onerror=function(){a.reject(new Error("Unable to load checkout.js"))};var i=o.getElementsByTagName("head")[0];i.appendChild(r);return a.promise}function d(e,t){if(t==="boolean"){return e&&e!=="false"}else if(t==="number"){return e&&Number(e)}else if(t==="boolean-or-auto"){if(e==="auto")return e;else return d(e,"boolean")}else{return e}}})(); \ No newline at end of file +(function(){"use strict";var e="stripe.checkout";var t="https://checkout.stripe.com/checkout.js";var n={address:["data-address","boolean"],alipay:["data-alipay","boolean-or-auto"],alipayReusable:["data-alipay-reusable","boolean"],allowRememberMe:["data-allow-remember-me","boolean"],amount:["data-amount","number"],billingAddress:["data-billing-address","boolean"],bitcoin:["data-bitcoin","boolean"],currency:["data-currency","string"],description:["data-description","string"],email:["data-email","string"],image:["data-image","string"],key:["data-key","string"],label:["data-label","string"],locale:["data-locale","string"],name:["data-name","string"],color:["data-color","string"],panelLabel:["data-panel-label","string"],shippingAddress:["data-shipping-address","boolean"],zipCode:["data-zip-code","boolean"]};var o;if(typeof module!=="undefined"&&typeof module.exports==="object"){o=require("angular");module.exports=e}else{o=window.angular}var a=o.extend;o.module(e,[]).directive("stripeCheckout",r).provider("StripeCheckout",i);r.$inject=["$parse","$timeout","StripeCheckout"];function r(e,t,n){return{link:o};function o(o,a,r){var i;n.load().then(function(){t(function(){i=n.configure(u(a))},50)});a.on("click",function(){if(i)i.open(u(a)).then(function(t){var n=e(r.stripeCheckout)(o);if(typeof n==="function")n.apply(null,t)})})}}function i(){var e={};this.defaults=function(t){a(e,t)};this.load=function(e){return e.load()};this.load.$inject=["StripeCheckout"];this.$get=function(t,n){return new l(t,n,e)};this.$get.$inject=["$document","$q"]}function l(e,t,n){var o={};var r;this.configure=function(e){return new c(t,a({},n,o,e))};this.load=function(){if(!r)r=s(e,t);return r};this.defaults=function(e){a(o,e)}}function c(e,t){var n,o;var r=StripeCheckout.configure(a({},t,{token:function(e,a){if(t.token)t.token(e,a);o=true;n.resolve([e,a])},closed:function(){if(t.closed)t.closed();if(!o)n.reject()}}));this.open=function(t){n=e.defer();o=false;r.open(t);return n.promise};this.close=function(){o=false;r.close();if(t.closed)t.closed();if(n)n.reject()}}function u(e){var t,o,a,r={};for(t in n){if(!n.hasOwnProperty(t))continue;o=n[t];a=d(e.attr(o[0]),o[1]);if(a!=null)r[t]=a}return r}function s(e,n){var o=n.defer();var a=e[0];var r=a.createElement("script");r.src=t;r.onload=function(){o.resolve()};r.onreadystatechange=function(){var e=this.readyState;if(e==="loaded"||e==="complete")o.resolve()};r.onerror=function(){o.reject(new Error("Unable to load checkout.js"))};var i=a.getElementsByTagName("head")[0];i.appendChild(r);return o.promise}function d(e,t){if(t==="boolean"){return e&&e!=="false"}else if(t==="number"){return e&&Number(e)}else if(t==="boolean-or-auto"){if(e==="auto")return e;else return d(e,"boolean")}else{return e}}})(); \ No newline at end of file