だから、私は次のようなことをしようとしていました:
if(Meteor.isServer){
Meteor.methods({connect_to_api: function(vars){
// get data from remote API
return data;
}});
}
if(Meteor.isClient){
Template.myTpl.content = function(){
Meteor.call('connect_to_api', vars, function(err,data){
Session.set('placeholder', data);
});
return Session.get('placeholder');
};
}
これは問題なく動作しているように見えましたが、もちろん、Session オブジェクトがサーバーから削除されたため、0.5.9 で機能しなくなりました。サーバーのみ(クライアントにロードしたくないもの)のメソッド呼び出しを使用するリアクティブなテンプレートを作成し、そのメソッド呼び出しからデータを取得するにはどうすればよいでしょうか。サーバー上に存在しないため、コールバック関数にセッション参照を配置することはできません。また、このシナリオで使用できる他のリアクティブ データ ソースを知りません。
私は Meteor にかなり慣れていないので、将来的に保証される可能性が最も高いベスト プラクティスを突き止めようとしています。どうやら上記の実装はそうではありませんでした。
編集:明確にするために、これはテンプレート関数から戻ったときの問題ではありません。これは、サーバー上に存在するセッションの問題です。上記のコードは、サーバー上で次のエラー メッセージを生成します。
Exception while invoking method 'connect_to_api' ReferenceError: Session is not defined
at Meteor.methods.connect_to_api (path/to/file.js:#:#)
at _.extend.protocol_handlers.method.exception ... etc etc