2

環境固有の変数を自分のライブラリに渡そうとしています。そして、それを forRoot() に渡します。ハードコードされた値の場合は渡すことができますが、ライブラリに渡すと環境値の場合は未定義として表示されます。

const rootUrl = environment.rootURL;

@NgModule({
imports: [
// configs go in here
coachModule.forRoot(
  {
    apiURL: 'test.com',
    scoreData: {
      score: 708
    },
    rootURL: rootUrl
  }),
 ...

@NgModule にブレークポイントを設定すると rootUrl が定義されますが、ライブラリにブレークポイントを設定すると rootURL は定義されません。

私はAngular 5を使用しています。問題をグーグルで調べてみましたが、解決策が見つかりませんでした。

これは一般的な問題ですか?この環境変数を渡す別の方法は何ですか? どんな助けでも感謝します:)

更新:正しく機能していない理由がわかりました。--aot でビルドしていたので、デバッグ時に rootUrl の値を確認できました。これは、ランタイムでチェックしていたのですが、コンパイル時にライブラリに渡していたためです (未定義の値で)。

私は今、この可能な解決策を試しています。誰かが他の潜在的な解決策を持っているなら、私は感謝します

解決策:私の解決策は、環境変数が aot でコンパイルされたので、変数を関数として渡すことでした。これは、ランタイムでそれらを実行する必要がありました。

次のような関数を作成し、参照をライブラリに渡しました

export function getRootURL() {
   return environment.rootURL;
}
4

0 に答える 0