angularjs - AngularJS - ui路由器 - 无法将url参数键与感叹号匹配
问题描述
我的应用程序中有多个状态,我使用这样的 $stateProvider 定义:
.state(STATES.s1,
{
url: "/?refnr"
template: ...
})
.state(STATES.s2,
{
url: "/?details&searchID&pos"
template: ...
})
现在我想要第三种状态,我想在其中捕获包含特定 url 参数的所有 url,其中包括感叹号。这是参数“emp!” 在 url 中看起来像这样,值为“.../?emp!=45”。我将其定义为我的状态:
.state(STATES.s3,
{
url: "/?emp!"
template: ...
})
不工作。它与 url 不匹配。我还尝试使用$urlMatcherFactoryProvider并提供已编译的匹配器作为 url,但结果相同。我也尝试使用编码版本!在我的状态 url 定义中是这样的:
url: "/?emp%21"
还是一样的结果。
为什么呢?我怎样才能匹配这些网址?
解决方案
尝试这样的事情。花括号之间的表达式是匹配您的条件的正则表达式。
.state(STATES.s3, {
url: "/{^\?.*emp!$}"
template: ...
})
该正则表达式将匹配以 开头?
、 结尾!
和emp
之前的 url !
。喜欢:
- ?麻!
- ?param=值&温度!
推荐阅读
- r - Getting rows whose value are greater than the group mean
- javascript - 使用 createJS 制作的 Javascript 游戏中的碰撞检测
- javascript - ServiceWorker blocks any external resource
- tomcat - 在我的 Tomcat 服务器上,通过 SSL 下载视频文件的速度要慢 10 倍
- go - 如何使用 Go 语言的 Vs 代码调试部署在本地服务器上的 RestApi
- python - pyqt5 "QTableWidget" and "setItem" issue
- ruby-on-rails - Rails/Redux/Devise - 尝试登录用户,但在此过程中 currentUser 的值变成了文档的 HTML 字符串
- vsto - VSTO Outlook 插件更新 Appointment.Body,因此 Outlook 显示文本而不是多部分消息的 html 部分
- javascript - 将字典列表传递给.js文件以使用python烧瓶创建highcharts
- python - 识别手动数据输入错误(Python Pandas)