requirejs加载静态JSON文件
我想保留一个json文件来存储一些简单的数据,我想要求这个文件,并在define()
调用中使用json对象,所以我可以使用它。 这不是一个“asynchronous”的电话。 我的意思是它应该是为了开发,但我真的想编译构build的文件不像来自API的实际的asynchronous调用,其中内容是dynamic的。
最简单的方法是使用requirejs json插件,这样可以将文件包含到构build中。
https://github.com/millermedeiros/requirejs-plugins
这里是一个例子:
require(['json!someFile.json'], function(data){ ... }) // It does not actually need to be a .json extension, this will work to: require(['json!someFile'], function(data){ ... })
如果你想在你的r.js版本中包含这个文件,这样它总是在主/ js引导文件中被优化,你必须把它添加到include选项
您也可以使用require js文本插件,通常用于加载模板文件,但您也可以使用它来加载.json文件。
https://github.com/requirejs/text
你将不得不用JSON.parse
parsing你自己的内容
(如果需要的话,包含json2.js以支持旧浏览器)
你也可以将json包装在它自己的define()中,这样你就可以传统地使用它,但是如果你限制在一个实际的.json
文件中,那么这将不起作用。
另外一个select是要求文本文件通过ajax你的自己,用jQuery或什么的。
$.get('somefile.json', function(data) { // do something with your data });
发表这个答案,因为:
- 这是用户提出的问题实际上用作他们的解决scheme
- 因为它总是为你做JSON.parse(),所以看起来更清晰。
RequireJS有一个JSON插件 。 语法很简单:
require(['json!someData.json'], function(data){ ... })