ロケールメッセージをフェッチするためにカスタム.jsファイルからアプリコンテキストにアクセスする

BurningPapaya

SSRモードでNuxt.jsを使用してVue.jsアプリケーションを構築しています。私のプロジェクトにはプラグインaxiosありvue-i18nます。

nuxt.config.js

export default {
  mode: 'universal',
  // some irrelevant configs
  modules: [
    '@nuxtjs/axios',
    'nuxt-i18n',
  ],
  i18n: {
    locales: [
      {
        code: 'en',
        name: 'English',
        file: 'en-EN.js'
      },
      {
        code: 'de',
        name: 'Deutsch',
        file: 'de-DE.js'
      }],
    defaultLocale: 'en',
    vueI18n: {
      fallbackLocale: 'en',
    },
    lazy: true,
    langDir: 'locales/',
    vuex: {
      moduleName: 'i18n',
      syncLocale: true,
      syncMessages: true,
      syncRouteParams: true
    },
  },
  /* Axios module configuration */
  axios: {}
}

ご覧のとおり、i18nは遅延読み込みに設定されています。そして、メッセージはlocales/en-EN.jslocales/de-DE.jsファイルから取得されます。ファイルで、メッセージを提供するバックエンドAPIにリクエストを送信します。locales/en-EN.js

export default async function (context) {
  return await context.$axios.get('backend-api');
}

ただし、ページをロードすると、それ$axiosは未定義であると表示されますCannot read property 'get' of undefinedしかし、言語を切り替え始めるとすぐに、アプリケーションは翻訳を受け取ります。したがって、私の推測では、$axiosコンテキストからアクセスしようとしているサーバーは失敗しますが、クライアント(ブラウザー)では成功します。$axiosNuxtからモジュールにアクセスする正しい方法は何contextですか?

BurningPapaya

したがって、問題は、プラグインの挿入中にロケールファイルが呼び出されること(i18n)であるためaxios、アプリのコンテキストではまだ利用できないことだと思います。

だから私は回避策を見つけました:

まず、axios(nuxtモジュールに加えて)プレーンをインポートしました

npm i axios -S

次に、ロケールファイルで、エクスポート関数内にインスタンスをインポートしました。

// en-En.js
export default async function (context) {

  // axios is derived directly from lib instead of context
  const axios = require('axios').default;

  let localeMessages = null

  await axios.get(
      'backend-api'
  ).then((result) => {
    localeMessages = result.data
  }).catch(() => {
    localeMessages = {}
  });

  return localeMessages
}

これがそれを行うための有効な方法であるかどうかはまだわかりませんが、今のところは機能します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ファイルをマウントして、コンテナkubernetes内のアプリケーションからファイルにアクセスする方法

分類Dev

コマンドラインからファイルをアップロードするためにPerlCGIスクリプトをテストする方法は?

分類Dev

カスタムテンプレートタグから静的ファイルにアクセスする

分類Dev

LINQ to SQLフィルターで条件付きでインターフェイスプロパティにアクセスするために、repository <T>のジェネリックTをインターフェイスにキャストするにはどうすればよいですか?

分類Dev

起動中にrootfs、ホーム、メッセージキュー、カーネルファイルシステムをマウントするためのアクセス許可が拒否される原因は何ですか?

分類Dev

Python-テキストファイルからリスト内のアイテムにアクセスする

分類Dev

JavaWebアプリケーションからLinuxローカルファイルシステムにアクセスする

分類Dev

JSPファイルでスクリプトレットを使用せずにアプリケーションコンテキストパスにアクセスするにはどうすればよいですか?

分類Dev

インターネットからAzureVMのSuaveセルフホストアプリにアクセスする

分類Dev

テキスト/プレーンファイルをGoogleドライブからAndroidアプリのローカルファイルにコピーする方法

分類Dev

質問:データを送信するために別のアカウントからバケットにアクセスするテラフォーム

分類Dev

プログレッシブウェブアプリがローカルファイルシステムにアクセスする方法はありますか?

分類Dev

Googleバケットからファイルをプルダウンするときにアクセス拒否の例外メッセージ

分類Dev

テキストファイルからマトリックスの目的の部分にアクセスする方法。

分類Dev

マウスアップ後にチェックボックスラベルからフォーカススタイルを削除する、アクセス可能なキーボードフレンドリーな方法

分類Dev

ドキュメントベースのコアデータアプリケーションの保存ダイアログのファイル形式をsqliteにプリセットするにはどうすればよいですか?

分類Dev

選択したキー値のローカルストレージからデータをフェッチするために使用できるクエリ

分類Dev

テキストファイルからコンボボックスにアイテムを追加する

分類Dev

データコンポーネントからアップロードされたファイルにアクセスする

分類Dev

コードから.uiファイルで作成されたウィジェットにアクセスする

分類Dev

ライブアップデートのためにLinuxのプロセスから実行可能ファイルをデタッチする方法

分類Dev

ファイルをキャメルケースからアンダースコアに変換するAwk / sedスクリプト

分類Dev

迅速にクラスファイルにアクセスするときのコンテキストクロージャタイプエラー

分類Dev

外部テキストファイルからパスにアクセスする

分類Dev

ローカルファイルからstringiをインストールする方法(絶対にインターネットアクセスなし)

分類Dev

アプリケーションファイルをすべてのプロジェクトディレクトリにコピーアンドペーストせずにSQLiteをセットアップする

分類Dev

Hyperledger ComposerスクリプトファイルからGO langチェーンコードにアクセスすることは可能ですか?

分類Dev

リモートサーバー(最初は2ステップのログインでアクセス)からローカルコンピューターにファイルを戻すにはどうすればよいですか?

分類Dev

アプリのファクトリパターンを使用するときに、埋め込みDashアプリ内からFlaskアプリのコンテキストにアクセスするにはどうすればよいですか?

Related 関連記事

  1. 1

    ファイルをマウントして、コンテナkubernetes内のアプリケーションからファイルにアクセスする方法

  2. 2

    コマンドラインからファイルをアップロードするためにPerlCGIスクリプトをテストする方法は?

  3. 3

    カスタムテンプレートタグから静的ファイルにアクセスする

  4. 4

    LINQ to SQLフィルターで条件付きでインターフェイスプロパティにアクセスするために、repository <T>のジェネリックTをインターフェイスにキャストするにはどうすればよいですか?

  5. 5

    起動中にrootfs、ホーム、メッセージキュー、カーネルファイルシステムをマウントするためのアクセス許可が拒否される原因は何ですか?

  6. 6

    Python-テキストファイルからリスト内のアイテムにアクセスする

  7. 7

    JavaWebアプリケーションからLinuxローカルファイルシステムにアクセスする

  8. 8

    JSPファイルでスクリプトレットを使用せずにアプリケーションコンテキストパスにアクセスするにはどうすればよいですか?

  9. 9

    インターネットからAzureVMのSuaveセルフホストアプリにアクセスする

  10. 10

    テキスト/プレーンファイルをGoogleドライブからAndroidアプリのローカルファイルにコピーする方法

  11. 11

    質問:データを送信するために別のアカウントからバケットにアクセスするテラフォーム

  12. 12

    プログレッシブウェブアプリがローカルファイルシステムにアクセスする方法はありますか?

  13. 13

    Googleバケットからファイルをプルダウンするときにアクセス拒否の例外メッセージ

  14. 14

    テキストファイルからマトリックスの目的の部分にアクセスする方法。

  15. 15

    マウスアップ後にチェックボックスラベルからフォーカススタイルを削除する、アクセス可能なキーボードフレンドリーな方法

  16. 16

    ドキュメントベースのコアデータアプリケーションの保存ダイアログのファイル形式をsqliteにプリセットするにはどうすればよいですか?

  17. 17

    選択したキー値のローカルストレージからデータをフェッチするために使用できるクエリ

  18. 18

    テキストファイルからコンボボックスにアイテムを追加する

  19. 19

    データコンポーネントからアップロードされたファイルにアクセスする

  20. 20

    コードから.uiファイルで作成されたウィジェットにアクセスする

  21. 21

    ライブアップデートのためにLinuxのプロセスから実行可能ファイルをデタッチする方法

  22. 22

    ファイルをキャメルケースからアンダースコアに変換するAwk / sedスクリプト

  23. 23

    迅速にクラスファイルにアクセスするときのコンテキストクロージャタイプエラー

  24. 24

    外部テキストファイルからパスにアクセスする

  25. 25

    ローカルファイルからstringiをインストールする方法(絶対にインターネットアクセスなし)

  26. 26

    アプリケーションファイルをすべてのプロジェクトディレクトリにコピーアンドペーストせずにSQLiteをセットアップする

  27. 27

    Hyperledger ComposerスクリプトファイルからGO langチェーンコードにアクセスすることは可能ですか?

  28. 28

    リモートサーバー(最初は2ステップのログインでアクセス)からローカルコンピューターにファイルを戻すにはどうすればよいですか?

  29. 29

    アプリのファクトリパターンを使用するときに、埋め込みDashアプリ内からFlaskアプリのコンテキストにアクセスするにはどうすればよいですか?

ホットタグ

アーカイブ