Meteor HTTP调用的麻烦

时间:2015-04-05 03:48:35

标签: javascript http meteor

我是Meteor的新手,无法尝试发出HTTP GET请求。我正在按照一个通过HTTP请求的教程,我几乎跟着它到T,但是当我导航到页面时似乎没有显示。我添加了Meteor HTTP,但我的client.js文件上的功能似乎还没有被触发。当我使用浏览器导航到NYT时,我可以看到JSON,但我的页面上没有任何内容。

在我的客户端文件夹中,这是我的home.html:

<template name="home">
<div class="page-header">
<h1>Home</h1>
You are home!
<select class="news">
  <option>sports</option>
  <option>politics</option>
  <option>business</option>
</select>
  <h1>news:<small>{{currentnews}}</small></h1>
</div>
</template>

这是home.js:

Template.layout.currentnews = function(){
var news = Session.get('news');
Meteor.call('getNews',news,function(err, results){
console.log(results.content);
console.log('hello from currentnews function');
Session.set('news', JSON.parse(results.content));
});
return Session.get('news');
};

最后这里是服务器文件夹中的server.js:

Meteor.methods({
'getNews':function(subject){
return Meteor.http.call('GET', 'http://api.nytimes.com/svc/search/v2/articlesearch.json?callback=svc_search_v2_articlesearch&q='+subject+'&begin_date=20150402&end_date=20150402&sort=newest&api-key=[apikeyhere]');
}
})

1 个答案:

答案 0 :(得分:0)

您确定自己的模板名称合适吗?你的例子对我来说没什么意义。

Template.layout.currentnews看起来不对....

您的模板被称为家庭?

尝试将代码放入

Template.home.rendered = function(){
        Meteor.call('getNews',news,function(err, results){
        console.log(results.content);
        console.log('hello from currentnews function');
        Session.set('news', JSON.parse(results.content));
        });
  };


Template.home.helpers({
    currentnews: function()
    {
      return Session.get('news');     
    }
});

您可能需要修复闭包。