Отправка нескольких путей на один маршрут без функции перенаправления

StackOverflow https://stackoverflow.com//questions/25020463

  •  21-12-2019
  •  | 
  •  

Вопрос

Я обновляю свой веб-сайт до приложения Meteor с помощью iron-router, и мне нужно изменить мои URL-адреса.В старой схеме названия страниц были написаны заглавными буквами следующим образом:

mysite.com/Contact

но я изменил все на строчные буквы:

mysite.com/contact

Этот маршрут контакта несложен, поэтому он настроен следующим образом:

this.route('contact');

но я хочу, чтобы /Contact url-адрес для перенаправления.Я знаю, что мог бы просто сделать это:

this.route('Contact', {
    onBeforeAction: function() {
        Router.go('contact');
    }
});

но все гораздо запутаннее.Я бы предпочел сделать что-то вроде этого:

this.route('contact', {
    path: ['/contact', '/Contact']
});

где маршрут просто сопоставляется с несколькими путями.

Есть ли подобная функция?Или это мой onBeforeAction лучшее, что я могу получить?

Это было полезно?

Решение

https://github.com/EventedMind/iron-router/blob/devel/DOCS.md#dynamic-path-segments

Вы можете использовать регулярное выражение для вашего сегмента пути (смотрите последний пример по ссылке Динамические сегменты пути).

Ваш путь был бы:

this.route('contact', {
    path: /contact/i
});

Где "i" после косой черты - это модификатор регулярного выражения, который не учитывает регистр, позволяя вам принимать любые варианты "контакта" (будь то "Контакт", "Контактное лицо" или "Контактная информация").

Видеть http://www.w3schools.com/jsref/jsref_regexp_i.asp подробнее о модификаторе регулярных выражений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top