4

在我的项目中,我想将数据与模板和 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”。

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

4

3 回答 3

2

您不能通过 requireJS 进行服务器调用和加载文件。您应该使用 ajax 调用来执行此操作。您可以使用jQuery 的getJSON方法。例如

$.getJSON("http://some api url.com?apikey=apikey",function (someData) {
       //perform the calculations needed with someData here
       console.log(someData);     
});
于 2012-11-28T11:48:41.143 回答
1

感谢大家对我的问题提出质疑!我已经能够使用插件“异步”来完成这项工作。基本上,我也在 Google Group 上发布了我的问题并收到了回复,这里是更多信息的 url, https://groups.google.com/forum/?fromgroups=#!topic/requirejs/39rieY2ZovE

希望这对所有人都有帮助。

谢谢。容光焕发

于 2012-12-04T15:09:12.343 回答
0

查看RequireJS 插件

对于 JSON 数据,您将要求更改为

require([`json!http://some api url.com?apikey=apikey&callback=define`], 
        function(someData){
          // do something
        });
于 2014-01-22T13:58:08.720 回答