1

我正在使用流星路由器包在我的应用程序中设置路线。但是,我需要能够“动态地”设置一些路线。这意味着我有一些“静态”路由和一些“动态”路由,它们会根据某些变量(特别是 URL 的一部分)而变化。
例如,如果用户访问 www.example.com/foo 我的路由应该在所有 URL 前加上前缀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'
});
4

1 回答 1

1

您上面的设置应该可以工作,只需将每条路由更改为具有/前缀

Routes = {}

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

Meteor.Router.add(Routes);
于 2013-03-05T07:11:34.890 回答