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. Никакая документация, которую я видел, не поддерживает такой формат.