Я использую пакет meteor-router для настройки маршрутов в моем приложении. Тем не менее, мне нужно иметь возможность настраивать некоторые маршруты «динамически». Это означает, что у меня есть некоторые «статические» маршруты и некоторые «динамические», которые меняются в зависимости от некоторой переменной (в частности, части URL).
Например, если пользователь посещает www.example.com/foo, мои маршруты должны префикс всех URL-адресов foo
, если пользователь посещает www.example.com/bar, все маршруты должны иметь префикс bar
.Создание маршрутов динамически в Meteor
Псевдо код:
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'
});
Он не будет работать таким образом. В вашем примере, если я попытаюсь конкатенацию непосредственно в методе Meteor.Router.add() ', я получаю сообщение об ошибке:' SyntaxError: Неожиданный токен + '. Если я попытаюсь сделать эту переменную до «Meteor.Router.add()» и присвоить этот var как некоторый URL-адрес, ничего не произойдет ... На самом деле, моя идея о «динамической» настройке маршрутов (после подписания готова) будет, вероятно, не работает, как я представлял, но все же я не могу получить эту вещь с префиксной работой ни на одном из моих маршрутов. – errata
Я немного обновил, он должен работать с помощью '[]' способа объявить ключи вместо – Akshat
Yap, который работает сейчас ... Я пытался использовать '[]' при определении моих ключей, но я попытался установить их в 'Meteor.Router.add()' ... Ваше решение возникло для меня, но я на самом деле не пробовал его :) Большое спасибо! – errata