Angular 模块的 forRoot 中的运行时值

Rak*_*and 6 javascript module angular

在我的角度应用程序中有一个名为Ngx-Stripe的模块

我将其定义为如下文档:

NgxStripeModule.forRoot('***your-stripe-publishable key***');
Run Code Online (Sandbox Code Playgroud)

但问题是我没有在应用程序引导程序上获得此密钥,我不应该app.moduleindex.html当我使用带有任何角度库的条带时那样以角度或全局方式对它进行硬编码。

用户进入付款页面后,我在 api 调用中获取此密钥。在这种情况下如何定义这个键?

Dan*_*cal 2

我希望它很简单,但我能够实现它的唯一方法是:

index.html(或者是 webpack 注入的脚本),必须放在 Angular 的源代码之前:

<script>
  var STRIPE_KEY = 'paste it here';
</script>
Run Code Online (Sandbox Code Playgroud)

应用程序模块.ts

declare var STRIPE_KEY;

// ...
NgxStripeModule.forRoot(STRIPE_KEY);
Run Code Online (Sandbox Code Playgroud)

这里的问题是.forRoot()必须由 Angular AoT 编译器进行静态分析,因此它无法接受您希望它接受的内容...通过方法获取密钥后设置密钥怎么样StripeService.changeKey(key: string)