条带未定义(ember-cli)

时间:2015-01-12 20:44:01

标签: ember.js stripe-payments ember-cli

我已经看到两个单独的用户,包括Windows 7和Firefox 34,我的Stripe初始化程序出现Stripe is not defined错误。

我使用.setPublishableKey()ENV获取密钥,如下所示:

initializer =
  name: 'stripe'
  initialize: ->
    Stripe.setPublishableKey(ENV.STRIPE_PUBLISHABLE_KEY)

`export default initializer`

我像这样包括Stripe JS:

<html>
  <head>
    {{content-for 'head'}}

    <script type="text/javascript" src="https://js.stripe.com/v2/"></script>

可能导致这种情况的原因是什么?我怎么能解决它?

我知道我可以在设置可发布密钥之前检查Stripe是否已定义,但这可能不足以让用户使用与Stripe相关的功能。

1 个答案:

答案 0 :(得分:0)

Josh,似乎这是初始化ember-stripe-service包的方式。

违规行:https://github.com/ride/ember-stripe-service/blob/master/app/initializers/stripe-service.js#L15

此评论中提到了一种解决方法:https://github.com/ride/ember-stripe-service/issues/12#issuecomment-94524196

我有你的问题,上面评论中的修复效果很好。这是我在Coffeescript中的版本

app/initializers/fake-stripe.coffee

`import config from '../config/environment'`

initialize = (container, application) ->
  if (config.environment != 'test')
    return
  if (typeof Stripe != 'undefined')
    return

  window.Stripe =
    setPublishableKey: ->
    card: createToken: ->

StripeInitializer =
  name: 'fake-stripe'
  before: 'stripe'
  initialize: initialize

`export {initialize}`
`export default StripeInitializer`