fast_render.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. if(!Package['meteorhacks:fast-render']) {
  2. return;
  3. }
  4. FastRender = Package['meteorhacks:fast-render'].FastRender;
  5. // hack to run after eveything else on startup
  6. Meteor.startup(function () {
  7. Meteor.startup(function () {
  8. setupFastRender();
  9. });
  10. });
  11. function setupFastRender () {
  12. _.each(FlowRouter._routes, function (route) {
  13. FastRender.route(route.pathDef, function (routeParams, path) {
  14. var self = this;
  15. // anyone using Meteor.subscribe for something else?
  16. var original = Meteor.subscribe;
  17. Meteor.subscribe = function () {
  18. return _.toArray(arguments);
  19. };
  20. route._subsMap = {};
  21. FlowRouter.subscriptions.call(route, path);
  22. if(route.subscriptions) {
  23. var queryParams = routeParams.query;
  24. var params = _.omit(routeParams, 'query');
  25. route.subscriptions(params, queryParams);
  26. }
  27. _.each(route._subsMap, function (args) {
  28. self.subscribe.apply(self, args);
  29. });
  30. // restore Meteor.subscribe, ... on server side
  31. Meteor.subscribe = original;
  32. });
  33. });
  34. }