如何将json数据从单独的js文件获取到主js文件

如何将json数据从单独的js文件获取到主js文件,json,requirejs,Json,Requirejs,在我的项目中,我希望将数据与模板和main.js文件分开。比如说, 在my data.js中: define({ heading: "Some Heading", subHeading : "Subheading is cool" }); 在我的main.js中 require(['jquery', 'data'], function($, data){ console.log("data object is :" + data); ); 这是可行的,我在控制台

在我的项目中,我希望将数据与模板和main.js文件分开。比如说,

在my 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”


非常感谢任何指向可能修复的帮助。谢谢。

您无法通过requireJS进行服务器调用和加载文件。您应该使用ajax调用来实现这一点。您可以使用jQuery的方法。 例如


谢谢大家在我的问题上尝试!我已经能够使用一个插件“async”来实现这一点。基本上,我也在Google Group上发布了我的问题,并收到了回复,这是更多信息的url,

希望这对大家都有帮助

谢谢。 辐射的

查看

对于JSON数据,将require更改为

require([`json!http://some api url.com?apikey=apikey&callback=define`], 
        function(someData){
          // do something
        });

谢谢Janith。我也尝试过这种方法,但是我无法访问主js文件上的“someData”,仍然得到“undefined”:(感谢您的时间。我想不在data js文件上执行任何操作,只需在主js文件上获取json对象并在那里执行操作,例如-获取模板,从data js获取json并渲染到html。将数据和模板分开是最好的方法。您可以做的是从requirejs加载模板(文本插件)并使用getJSON方法从服务器加载数据,并在getJSON方法中填充模板。感谢您对此进行尝试。是的,成功调用模板确实有效,但数据和操作发生在同一个文件中。保持我参与的项目规模,我想我是否可以保留数据、模板和操作在不同的文件中加载。这是我建议的:),将模板保存在一个单独的文件中,使用requirejs加载,服务器端的数据,通过getJSON加载。您可以看看我们创建的参考体系结构,您可以实现如下内容:我们将视图和模型分开,并使用MVVM体系结构
require([`json!http://some api url.com?apikey=apikey&callback=define`], 
        function(someData){
          // do something
        });