在我的项目中,我希望将数据与templates和main.js文件分开。例如,
在我的data.js中:
define({
heading: "Some Heading",
subHeading : "Subheading is cool"
});
在我的main.js中,
require(['jquery', 'data'], function($, data){
console.log("data object is :" + data);
);
这有效,我在控制台上得到了预期的结果。同样地,我想做一个api调用并获取json数据,所以我更新了我的data.js,如下所示,
define(function(){
require(["http://some api url.com?apikey=apikey&callback=define"],
function (someData) {
return someData;
}
);
});
但是,我没有从API调用中获取main.js上的json数据,我得到“数据对象是:未定义”。
我不知道如何在main.js文件中获得“someData”。
非常感谢任何指向可能的解决方案的帮助。感谢。
答案 0 :(得分:2)
您无法通过requireJS进行服务器调用和加载文件。您应该使用ajax调用来执行此操作。您可以使用jQuery的getJSON方法。 E.g。
$.getJSON("http://some api url.com?apikey=apikey",function (someData) {
//perform the calculations needed with someData here
console.log(someData);
});
答案 1 :(得分:1)
感谢所有人对我的问题进行了抨击!我已经能够使用插件'async'来实现这一点。基本上,我也将我的问题发布在Google Group上,我收到了回复,这里有更多信息的网址, https://groups.google.com/forum/?fromgroups=#!topic/requirejs/39rieY2ZovE
希望这对所有人都有帮助。
感谢。 容光焕发
答案 2 :(得分:0)
对于JSON数据,您将需要更改为
require([`json!http://some api url.com?apikey=apikey&callback=define`],
function(someData){
// do something
});