Пользовательский URL в Метеор

У меня есть такой URL в моем проекте: https://localhost:3000/groups/KhHB9TwzZxiddgJND/event

Я хочу получить что-то вроде этого: https://localhost:3000/groups/groupName/event

Как мне это сделать? Использую Meteor 1.3 на Blaze, флоу-роутер для роутинга


person Pizza Day    schedule 07.06.2016    source источник


Ответы (1)


Вы бы просто определили свой маршрут и использовали переменную name вместо id:

FlowRouter.route('/groups/:name/event', {});

Затем позже, когда вы захотите установить контекст данных для своего шаблона, вы должны сделать что-то вроде:

let groupName = FlowRouter.getParam("name");
const group = Groups.findOne({ name: groupName });

_id не является чем-то особенным в маршруте, параметр маршрута — это просто то, по чему вы в конечном итоге будете искать. Что хорошо в _id, так это то, что он гарантированно уникален. Если вы ищете по имени, вам, возможно, придется обеспечить уникальность вашей модели, если вам действительно не нужен список.

person Michel Floyd    schedule 08.06.2016
comment
Это работает, но как я могу получить '' в URL? Я получаю это: http://localhost:3000/groups/My%40Group/event и хочу это: http://localhost:3000/groups/My_Group/event. В URL нет кодов символов. Любые идеи? - person Pizza Day; 08.06.2016
comment
Может быть, попробовать decodeURI? developer.mozilla.org/fr/docs/Web/JavaScript/ Ссылка/ - person Julien Leray; 08.06.2016