0

requirejs我正在开发一个使用和小部件的单页应用程序JQuery.datepicker。我的网站使用多种语言,我想根据语言设置格式化日历,但我不想每次都包含所有 datepicker 的本地化文件。

如何在运行时.../jquery.ui.datepicker-_lg_.js根据_lg_变量管理正确本地化的包含?

4

1 回答 1

0

您始终可以require()使用正确的语言文件,例如在应用程序初始化代码中:

define(..., function(...) {
    var lang = ...
    require("lib/jquery-ui/jquery.ui.datepicker-" + lang, function() {
        // code here will run after the localization file has loaded
    });
    ...
});

如果您可以并且不介意在index.html页面中添加一些动态内容,并且语言首选项在服务器端可用,您甚至可以执行以下操作:

  • 将配置文件与您的主要 AMD 模块分开。
  • 使用var require = ...配置文件的格式,而不是require.config({...})格式。
  • 假设有一个服务器端变量 ,lang它保存语言选择。将脚本包含为index.html(显示的类似 JSP 的语法,请根据您的情况进行调整):

    <script src="scripts/require-config.js"></script>
    <script>
        require.deps = require.deps || [];
        require.deps.push("lib/jquery-ui/jquery.ui.datepicker-<%= lang %>");
    </script>
    <script src="scripts/lib/require.js" data-main="..."></script>
    

这使用了一些服务器端代码来操作需求配置,以便在require定义后立即加载本地化。sam 原则可以与pathand shim/一起使用deps

于 2013-11-08T10:48:56.390 回答