Passing external data into a template

@nathanhornby rewritten as promised. I did it fast without checking, so there’s 1% chance it lacks a bracket somewhere.

template:

Template.myTemplate.onCreated({
  this.readmeVar = new ReactiveVar('');
  Meteor.call('getReadmeFromGithub', 
    FlowRouter.getParam('provider'), 
    FlowRouter.getParam('package'), 
    (function(_this) {
      return function(error, result) {
        if (!error) {
          return Template.instance().readmeVar.set(result);
        }
      };
    })
  (this));
});

Template.myTemplate.helpers({
  readme: function(){
    return Template.instance().readmeVar.get();
  }
});

method:

if (Meteor.isServer) {
  Meteor.methods({
    getReadmeFromGithub: function(provider, packageName) {
      return Meteor.http.call("GET", "https://api.github.com/repos" + provider + "/" + packageName + "/readme", {
        headers: {
          "User-Agent": "brajt",
          "Accept": "application/vnd.github.v3.html"
        }
      });
    }
  });
}

But like I said, you can also put this method.call into separate helper, as long (as you init this helper’s code in your HTML later by {{myHelper}}) or in a “click button” action.