将Javascript直接输入RequireJS Require函数
我们已经在我们的web应用程序中实现了require,并且正在进行处理。现在的变化是,我们有一些javascript是在运行时在客户端上动态创建的。require有没有一种方法可以将javascript字符串直接注入require()函数中 目前我们有:将Javascript直接输入RequireJS Require函数,requirejs,amd,Requirejs,Amd,我们已经在我们的web应用程序中实现了require,并且正在进行处理。现在的变化是,我们有一些javascript是在运行时在客户端上动态创建的。require有没有一种方法可以将javascript字符串直接注入require()函数中 目前我们有: require([moduleToLoad], function(mod){ //DO SOMETHING}}); 想要类似的东西(请原谅语法,因为只需写出它): 有人知道我们如何以及是否能够做到这一点吗 谢谢您可以在字符串中使用命名模块语
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,
吗?试着命名模块。然后通过执行evaleval(“define('runtimemodule',['Text!something.htm',func..”)运行它
。不确定这是否可行,但至少你需要这个……我不知道你在什么情况下需要这个。我能想到的唯一情况是你在客户端生成代码,并且需要与其他AMD模块共享。但我认为应该有更好的方法来做你正在尝试做的事情,而不是这样做。