Как заменить параметры маршрута в шаблоне URL? - PullRequest
0 голосов
/ 06 апреля 2020

Маршрутизатор angular использует параметры маршрута, такие как :productId, для сопоставления маршрутов и построения карты параметров.

Я хотел бы сделать обратное. Учитывая шаблон URL, такой как /products/:productId/components (в виде строки), и карту параметров, я хотел бы заполнить заполнители в шаблоне URL.

Есть ли простой способ сделать это?


Обновление:

Вот тривиальная реализация, которая работает:

let parts = urlTemplate.split('/');  // urlTemplate might be something like '/products/:productId/components'
parts = parts.map(p => {
  if (p.startsWith(':')) {
    return paramMap.get(p.substr(1));
  } else {
    return p;
  }
});
const url = parts.join('/');         // could be something like '/products/27/components'

Я надеялся найти подход, где мне не нужно выполнить анализ URL самостоятельно (потому что могут быть более сложные URL, которые не будут работать с описанным выше подходом), но разрешить замену маршрутизатору angular. Однако для моего варианта использования приведенная выше тривиальная реализация может быть достаточно хорошей.

...