在Meteor中动态创建路由

时间:2013-03-05 02:05:32

标签: routing meteor meteorite

我正在使用meteor-router包在我的应用中设置路线。但是,我需要能够“动态”设置一些路由。这意味着我有一些“静态”路由和一些“动态”,它们会根据某个变量(特别是URL的一部分)而发生变化。
例如,如果用户访问www.example.com/foo,我的路由应在所有网址前加foo,如果用户访问www.example.com/bar,则所有路由都应包含bar前缀。

伪代码:

Meteor.subscribe('bar', function(){
  var prefix = window.location.pathname.replace(/^\/([^\/]*).*$/, '$1');

  // "dynamic" routes, generated after 'subscribe' is ready
  Meteor.Router.add({
    prefix+'/': function() {
      // some code
      return 'mainTemplate';
    },
    prefix+'/welcome': 'welcome',
    prefix+'/foo': 'foo',
    prefix+'/bar': 'bar'
  });
)};

// "static" routes, independent of current URL
Meteor.Router.add({
  '/': 'home',
  '/admin': 'admin'
});

1 个答案:

答案 0 :(得分:1)

您上面的设置应该有效,只更改每个路由以获得/前缀

Routes = {}

Routes['/' + prefix + '/welcome'] = function() { return 'welcome' };
Routes['/' + prefix +' /foo'] = 'foo';
...

Meteor.Router.add(Routes);