我正在使用RequireJS在Web应用程序的前端加载文件。
在某些情况下,我希望RequireJS加载字符串而不是文件。如果将此字符串粘贴到实际的.js
文件中,并且我通过RequireJS将此文件作为模块,那么我将获得一个JavaScript对象。例如,
var str = "define([], function () { return {a : 'b'}; });";
var result = require(str) // I don't know what would be the syntax for this.
我希望result
拥有值{a : 'b'}
在我的实际应用程序中,str
的值是从为我的应用程序提供服务的服务器获得的,并且是可变的。
我可以要求像上面所示的字符串吗?
答案 0 :(得分:0)
您应该尝试使用Require.Js Text Plugin。它允许人们需要可以加载到JavaScript变量中的“纯文本”。
答案 1 :(得分:0)
没有办法完全你想要做什么,因为没有语法让RequireJS从包含模块代码的字符串加载模块。
然而,有一种方法可以得到相同的结果:
在您建议的系统中,服务器生成模块的代码,并立即发送给客户端。相反,服务器可以a)生成模块的代码,以及b)生成一个唯一的模块名称,该名称与为模块生成的代码相关联并发送给客户端。
客户端需要从服务器收到的模块名称。
服务器将模块的代码提供给客户端(就像客户端要求的任何其他模块一样)。