1

我想使用从远程 api 获取的数据来呈现简单的静态页面。例如,我想渲染一个从外部服务获得的带有天气预报的页面。但它不起作用。

Template.myStaticPage.content = function(){
 Meteor.http('GET', 'http://someurl.com/api/weather', function(err, res){
   if(res){return res};
 })
}

因此,在页面上什么也没有显示。如何在没有任何反应上下文(如 mongo 集合或会话)的情况下将数据传递给模板?

4

1 回答 1

6

中继数据Sessionhttp ://docs.meteor.com/#session

Template.myStaticPage.content = function(){
    return Session.get("weather");
}

//Will run when the template is created
Template.myStaticPage.created = function() {
    Meteor.http('GET', 'http://someurl.com/api/weather', function(err, res){
        if(res){Session.set("weather", res);};
    });
}

您需要小心 javascript 中的回调,当您使用回调时,return 语句不会传递给原始语句,function因为回调使其异步

于 2013-06-12T20:01:39.463 回答