Comments (8)
Noβthe code as written handles the narrow case of the handler being directly published as a property on the scope. If you wanted to fix this, fork + change scope[attr...
to:
$parse(attr.stripeForm)(scope).apply(scope, args)
However, the general implementation is already an anti-pattern and fixing this particular line doesn't change that. Using your template to pass up a callback is the biggest issue. You'll notice that directives that react to actions like ngSubmit
typically take an expression that calls a function to evaluate itself, not an expression to evaluate that returns a function to be called from elsewhere:
<form ng-submit="create(user)"></form>
The reason the pattern of returning a function and then calling it internally is so problematic is that it very tightly couples you to the expectation that you don't have to do anything before getting the token. What if you decide you want to call a postal code lookup service so you only collect the postal code from the user but send the full address to Stripe? You're out of luck. You have to dig up all the stripe-form
attributes and totally rewrite your form handling. That sort of logic belongs in code (in a controller), not tightly coupled to your templates.
Check out https://github.com/bendrucker/angular-stripe for a more flexible Stripe service, https://github.com/bendrucker/angular-credit-cards for validation and parsing, and https://github.com/bendrucker/angular-form-state for managing the submission state of any form (e.g. disabling the submit button during submission).
from angular-payments.
+1
from angular-payments.
+1
from angular-payments.
Is this issue solved ?
from angular-payments.
π
from angular-payments.
Yes!
from angular-payments.
Dont forget, if you're lazy:
ControllerAs is just syntactic sugar and you can still inject $scope into your controllers and use this / any plugin as normal. with $scope and reserve your controlleras syntax for everything else you're doing.
from angular-payments.
any idea how to fix this?
from angular-payments.
Related Issues (20)
- Feature request: Validate + Format for address_zip Field
- Specials charachers are allowed in every field
- How to do client side validation and add bootstrap error class?
- error on form submission of invalid API key even though API key has been set
- Card number input error
- Why is the card holder name not sent to stripe? HOT 1
- Specific $scope bindings HOT 2
- Creating Charges HOT 1
- Supporting Google pay?
- Masked inputs are not working in mobile devices HOT 2
- blank screen on the iphone when using angular-payments HOT 3
- what after getting the stripeToken ? HOT 1
- address_line1_check & address_zip_check #81 HOT 1
- "Cannot read property 'apply' of undefined" HOT 1
- Repo in active development ? HOT 2
- attributes is not defined at angular-payments.js
- payments-format="expiry" Invalid Date issue HOT 3
- Calling the stripe-form directive method from a controller (or another directive) HOT 1
- Backspace on CVC field not working after 4 digits on Firefox HOT 5
- Make Editing error messages so obvious. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from angular-payments.