Dynamic 带有requirejs的动态js包含

Dynamic 带有requirejs的动态js包含,dynamic,requirejs,jquery-ui-datepicker,Dynamic,Requirejs,Jquery Ui Datepicker,我正在开发一个使用requirejs和JQuery.datepicker小部件的单页应用程序。 我的网站使用多种语言,我想根据语言设置格式化日历,但我不想每次都包含datepicker的所有本地化文件 如何在运行时基于\u lg\ucode>变量管理正确本地化的../jquery.ui.datepicker-\u lg\ujs的包含 您可以始终require()正确的语言文件,例如在应用程序初始化代码中: define(..., function(...) { var lang = ..

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


如何在运行时基于
\u lg\ucode>变量管理正确本地化的
../jquery.ui.datepicker-\u lg\ujs
的包含

您可以始终
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的语法,根据您的情况进行调整):

    
    require.deps=require.deps | |[];
    require.deps.push(“lib/jqueryui/jquery.ui.datepicker-”;
    

这使用少量服务器端代码来操作所需配置,以便在定义
require
时立即加载本地化。sam原则可用于
路径
垫片
/
deps

非常感谢!我试图使用您的代码(第一个版本,客户端),但我总是遇到无法避免的“脚本错误”。我试图引用文件的相对/绝对路径,我将“require”作为项目的依赖项,但我不知道如何加载该脚本!有什么想法吗?你试过添加
.js
后缀吗?
<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>