我正在使用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'
});
答案 0 :(得分:1)
您上面的设置应该有效,只更改每个路由以获得/
前缀
Routes = {}
Routes['/' + prefix + '/welcome'] = function() { return 'welcome' };
Routes['/' + prefix +' /foo'] = 'foo';
...
Meteor.Router.add(Routes);