AngularJs - возможен только маршрут по точному совпадению?

В моем приложении я хотел бы соответствовать url именно так. в случае, если url не совпадает точно, я требую перенаправить на defualt как '`.

в настоящее время я требую проверить:

localhost:3000/sn=1234 or localhost:3000/sn=abc123 or localhost:3000/sn=abc123

это означает, что минимум sn= должен присутствовать с values будь то по номеру или алфавиту или оба смешаны.

в настоящее время мой state выглядит так:

.state('serialCreateCase', {
        url: '^/sn={serialNumber}',
        templateUrl:'app/createCase/create-case.html',
        controller: 'createCaseController as ctrl'

      })

Но это работает для: обоих localhost:3000/sn=, localhost:300/sn - как это предотвратить? и соответствует требуемое значение?

Заранее спасибо.

1 ответ

Решение

Вы можете использовать квалификатор регулярного выражения для параметра состояния. Например

url: '/sn={serialNumber:[a-z0-9]+}'

См. https://ui-router.github.io/docs/0.3.1/

Примечание: я удалил ^ префикс у вас был на вашем URL. Никакая документация, которую я видел, не поддерживает такой формат.

Другие вопросы по тегам