Meteorを使って天気予報APIからのデータを表示しています。これが機能する間、私が持っている問題はそれが反応的に更新されないということです。これは、更新された天気を見るためにページをリフレッシュすることを意味します。Meteor Session APIコールは反応的に動作しませんか?
私はこれを呼び出しているという事実であると信じていますonCreated.
以下は私のクライアントコードです。
Template.weather.helpers({
youweather: function(){
return Session.get('youweather');
}
});
Template.weather.onCreated(function(){
Meteor.call('calltheweatherman', function(err, res){
if (err){Session.set('youweather', {error: err});}
else {Session.set('youweather', res); return res;}
});
});
私のサーバーコードはそうのようなものです:
コードはそれが必要として動作しながら、述べたようにMeteor.methods({
'calltheweatherman':function(){
this.unblock();
var apiUrl = 'http://api.openweathermap.org/data/2.5/weather?q=NorthKorea&units=imperial&appid=myapikeygoaway';
var response = Meteor.wrapAsync(apiCall)(apiUrl);
return response;
}});
var apiCall = function (apiUrl, callback){
try {
var response = HTTP.get(apiUrl).data;
callback(null, response);
} catch (error) {
if (error.response) {
var errorCode = error.response.data.code;
var errorMessage = error.response.data.message;
} else {
var errorCode = 500;
var errorMessage = 'Cannot access the API';}
var myError = new Meteor.Error(errorCode, errorMessage);
callback(myError, null);}
}
、それはいつでも気象データの変更を更新しません。
「this.unblock();」が原因ではないかと思います。 – dubvfan87
@ dubvfan87今しよう。それが修正されるかどうかがわかります。 –
'unblock'はそれとは関係ありません。このコードが最初に反応すると信じる理由はありません。データソースはRESTエンドポイントであり、反応しません。そのメソッドの上には呼び出しも反応しません。 –