4

私たちが依存している jquery プラグインのいくつかは、ロケール/カルチャ固有のファイルを含める機能を提供して、en-us 以外のユーザーがその機能をより身近に感じられるようにします (jquery-globalize や bootstrap-datapicker など)。

これを達成する古い学校の方法は次のとおりです (「en-AU」はその場で決定され、欠落しているカルチャに対して 404 が返される場合があります)。

<script type="text/javascript" src="/js/globalize/globalize.js"></script>
<script type="text/javascript" src="/js/globalize/cultures/globalize.culture.en-AU.js"></script>

これをrequirejsで達成するための推奨される方法はありますか(globalizeがシムとして含まれていることに注意してください)?

これが私の最初の試みです。requirejsオプトマイザーがそれをどのように処理するかはまだわかりません...

Globalize = require("globalize");
...
locale = module.config().locale;
if (locale != null) {
  require(["globalize/globalize.culture." + locale], function() {
    logger.debug("Loaded locale '" + locale + "'");
    Globalize.culture(locale);
  }, function() {
    logger.debug("Unable to load locale '" + locale + "'");
  });
}

編集: オプティマイザは問題なく処理しますが、カルチャ ファイルが非同期に読み込まれるため、ソリューションは実際には機能しません。カルチャが設定される前に、アプリが Globalize を使用した可能性があります。

4

1 に答える 1

0

剣道は、コードで同様のことを行います。

これは彼らの技術のわずかな修正です。この特定のスタイルにより、require または直接のスクリプト インクルードを通じてモジュールをロードできます。

前提条件を設定するために少し変更しました。欠点として、このコードはr.js オプティマイザーを介して機能しなくなります。

var myLocalPrereqs = ['file_english.min'];

("function" == typeof define && define.amd ? define : function (preReqs, func) {
    return func()
})(myLocalPrereqs, function () {
    (function () {
      // Your module code goes here...
    })()
});
于 2013-06-14T04:46:06.710 に答える