2012-11-28 58 views
4

在我的項目中,我希望將數據與模板和main.js文件分開。例如,如何從單獨的js文件獲取json數據到主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數據,我得到「數據對象是:undefined」。

我不知道如何獲得main.js文件中的「someData」。

任何幫助指出可能的修復是高度讚賞。謝謝。

回答

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);  
}); 
+0

感謝Janith。嘗試了這種方法,但是我無法訪問主「js文件」someData「,仍然得到'undefined':( – radiant

+0

我的不好,修改了答案.. – janith

+0

感謝您的時間。我正在考慮不執行任何對數據js文件採取行動,並簡單地在主js文件上獲取json對象,然後在那裏執行操作 - 例如獲取模板並從數據js獲取json並呈現給html。 – radiant

0

查看RequireJS plugins

對於JSON數據,更改需要對

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