将Javascript直接输入RequireJS Require函数

将Javascript直接输入RequireJS Require函数,requirejs,amd,Requirejs,Amd,我们已经在我们的web应用程序中实现了require,并且正在进行处理。现在的变化是,我们有一些javascript是在运行时在客户端上动态创建的。require有没有一种方法可以将javascript字符串直接注入require()函数中 目前我们有: require([moduleToLoad], function(mod){ //DO SOMETHING}}); 想要类似的东西(请原谅语法,因为只需写出它): 有人知道我们如何以及是否能够做到这一点吗 谢谢您可以在字符串中使用命名模块语

我们已经在我们的web应用程序中实现了require,并且正在进行处理。现在的变化是,我们有一些javascript是在运行时在客户端上动态创建的。require有没有一种方法可以将javascript字符串直接注入require()函数中

目前我们有:

 require([moduleToLoad], function(mod){ //DO SOMETHING}});
想要类似的东西(请原谅语法,因为只需写出它):

有人知道我们如何以及是否能够做到这一点吗


谢谢

您可以在字符串中使用命名模块语法来定义AMD模块。求值此字符串,然后使用您提供的名称要求模块

定义如下所示的模块

eval("define('runtimemodule', ['Text!something.htm'], function(){ return 'template here' })")
require(["runtimemodule"], function(mod){ 
   console.log(mod); //logs "tempalte here"
});
需要如下模块

eval("define('runtimemodule', ['Text!something.htm'], function(){ return 'template here' })")
require(["runtimemodule"], function(mod){ 
   console.log(mod); //logs "tempalte here"
});

您完全控制了
jsString
的构造方式吗?你要在不同的地方多次传递
jsString
并调用
require(jsString,
吗?试着命名模块。然后通过执行eval
eval(“define('runtimemodule',['Text!something.htm',func..”)运行它
。不确定这是否可行,但至少你需要这个……我不知道你在什么情况下需要这个。我能想到的唯一情况是你在客户端生成代码,并且需要与其他AMD模块共享。但我认为应该有更好的方法来做你正在尝试做的事情,而不是这样做。