我正在将条纹角度注入到模块中以创建条带标记,但我似乎有一些依赖注入问题:
我在index.html
中同时加载了Stripe.js和angular-stripe指令<!-- Stripe includes-->
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
<script type="text/javascript" src="components/stripe-angular/stripe-angular.js"></script>
<!-- Ends Stripe includes -->
<script src="app.js"></script>
<script src="javascripts/form.js"></script>
<script src="factory/appointments.js"></script>
<!-- <script src="directives/datepicker.js"></script>
--><script src="controllers/main.js"></script>
<script src="controllers/form-controller.js"></script>
我根据文档正确注入:
angular.module('formApp')
.controller('formController', ['$scope', 'Appointment', 'stripe' , function($scope, Appointment) {
Stripe.setPublishableKey('my-key-here');
}]);
我做错了什么?
这是我的错误
Error: [$injector:unpr] Unknown provider: stripeProvider <- stripe <- formController
http://errors.angularjs.org/1.3.14/$injector/unpr?p0=stripeProvider%20%3C-<div ui-view="" class="ng-scope">tripe%20%3C-%formController
答案 0 :(得分:0)
您将stripe
列为依赖项,但绝不会将其传递给您的函数:
.controller('formController', ['$scope', 'Appointment', 'stripe' , function($scope, Appointment) {
只需添加stripe
参数:
.controller('formController', ['$scope', 'Appointment', 'stripe' , function($scope, Appointment, stripe) {
答案 1 :(得分:0)
按angular-stripe directive
,您的意思是https://github.com/gtramontina/stripe-angular吗?
如果是这样,你误解了它的用法(是的,它的文档很差)。您应该将stripe
添加为模块依赖项而不是要注入的服务。将app.js
中的代码更改为以下内容:
angular.module('formApp', ['stripe']);
并删除注射注释中的stripe
,然后你就可以了。
您可能还需要将Stripe.setPublishableKey('your-publishable-key');
添加到合适的位置,可能是run
块或config
块。
答案 2 :(得分:0)
文档很好。
首先确保您正在加载所需的文件:
<script src="https://js.stripe.com/v2/"></script>
<script src="/vendor/angular/angular.js"></script>
<script src="/vendor/angular-stripe/release/angular-stripe.js"></script>
然后将angular-stripe
模块添加到您的应用中:
angular.module('app', [ 'angular-stripe']...
在您的配置块中加载stripeProvider
并使用您的Stripe API密钥对其进行初始化。
angular.module('app').config(function(stripeProvider) {
stripeProvider.setPublishableKey('yourapikey');
....
最后,您可以在控制器中使用它:
angular.module('app').controller('CheckoutCtrl', function(stripe) {
stripe.card.createToken(card) ...
确保执行所有这些步骤。我从您的错误消息中猜到,您没有加载angular-stripe' module in your app which would then cause any call to
stripeProvider`以使该错误失败。