2016-06-22 9 views
2

私は、Globalize.jsを使用するASP MVCアプリケーションを開発しています。 _Layout.cshtmlでこのコードを追加しましたGlobalize.js E_DEFAULT_LOCALE_NOT_DEFINEDエラー

これは機能しています。しかし、$(document).readyまたは$(window).loadの他のページで使用しようとしたときにエラーが発生しましたJavaScript:E_DEFAULT_LOCALE_NOT_DEFINED:デフォルトのロケールが定義されていません。

グローバル化がまだロードされていないようです。

+0

問題はページの負荷だけで発生します。ロード後に関数を使用すると、すべてが機能しています。非同期呼び出しが終了したときに検出することです。 – Sayadi

+0

$ .ajaxSetupを追加すると({async:false}); _Layoutでは、すべて正常に動作しています。しかし、私は別の解決策が必要です – Sayadi

答えて

-1

グローバル化JavaScriptファイルは、グローバル化機能を使用しようとしている他のページの一部ではない場合があります。

<script type="text/javascript" src="YourPath/Globalize.js">を処理しているページの上に含めてみてください。

他のすべてのページが継承する基本_Layoutページがある場合は、そのページにスクリプトを含めることができるかどうかを確認してください。

+0

いいえ、それは解決策ではありません。問題はページの負荷だけで発生します。ロード後に関数を使用すると、すべてが機能しています。非同期呼び出しが終了したときに検出することです – Sayadi

2

E_DEFAULT_LOCALE_NOT_DEFINEDロケールの既定値(例:Globalize.locale("fr"))を事前に設定せずにグローバル化静的関数(例:Globalize.formatMessage)を使用しようとすると、エラーが発生します。

上記のエラーを引き起こすコードの詳細について教えてください。

+0

問題は、グローバル化関数を呼び出す他のすべてのページコードの前にレイアウトページ(Asynch Ajax呼び出し)のコードが実行されたことを確認することです。 – Sayadi

+0

今言及している問題は、それは非同期の世界に関連しています。私があなたが調べることを提案する解決策は約束です。それについてはhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promiseを参照してください。 'Promise.all(promiseGlobalize、promiseLayoutpage)'のように、両方の非同期関数を同期させるためにPromise allを使用することに興味があります。ここで 'promiseGlobalize'と' promiseLayoutpage'は両方とも約束です。 –

関連する問題