AngularJS Route: установить несколько значений параметров для одного маршрута - PullRequest
0 голосов
/ 28 ноября 2018

Мне было интересно, возможно ли с AngularJS сделать что-то вроде этого:

В настоящее время у меня есть маршрут с первым параметром, называемым «ресурсом», который может быть «устройством» или «группой».Есть второй параметр, называемый «id», но он не имеет значения.С помощью следующего кода маршрут принимает что-либо в качестве первого параметра:

.when("/templates/:resource/:id", {
            templateUrl: "/templates/views/navigation/templates.html",
            controller: 'ctrlTemplates',
            tab: "templates",
        })

Это заставляет меня проверить в контроллере, является ли значение первого параметра «устройством» или «группой».Я хотел бы избавиться от этой части проверки без создания двух маршрутов, если это возможно:

.when("/templates/group/:id", {
                templateUrl: "/templates/views/navigation/templates.html",
                controller: 'ctrlTemplates',
                tab: "templates",
            })
.when("/templates/device/:id", {
                templateUrl: "/templates/views/navigation/templates.html",
                controller: 'ctrlTemplates',
                tab: "templates",
            })

Так что мой вопрос, возможно ли, используя ОДИН маршрут, иметь несколько URL?Примерно так, например:

.when("/templates/('device'|'group')/:id", {
            templateUrl: "/templates/views/navigation/templates.html",
            controller: 'ctrlTemplates',
            tab: "templates",
        })

Поэтому мне не нужно проверять значение параметра впоследствии в самом контроллере, используя

if([('group', 'device'].includes($routeParams.resource))...

Знаете ли вы, возможно ли это?Или подобный способ сделать это?

С уважением,

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Я готов переключиться на ui-router, если это может помочь мне достичь того, что я хочу сделать.Также, если он поддерживает типы, это хорошо, так как у меня есть параметры, которые должны быть целыми числами.Я собираюсь взглянуть на некоторые примеры.

Если у вас есть пример с регулярными выражениями, было бы неплохо!

0 голосов
/ 29 ноября 2018

Ты не можешь делать то, что хочешь.Если вы хотите использовать ui-router, вы можете использовать его, но AngularJS ngRoute не дает вам возможности использовать регулярные выражения или привязывать параметры маршрута к типам.Если вы готовы перейти на ui-router, я могу привести пример того, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...