我是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]');
}
})
答案 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');
}
});
您可能需要修复闭包。