从url AngularJS中删除路由参数
Remove route param from url AngularJS
我想从url中删除路由参数。
我的URL可以是http://host.domain/#/events/eventId和http://host.domain/#/user/userId/events/eventId我的$routeProvider设置为'/events/:eventId?'和'user/:userId/events/:eventId?'
设置eventId时,我显示弹出窗口。当用户点击关闭按钮时,我想从url中删除eventId。我该怎么做?
附言:我在找这种
delete $route.current.params.eventId;
但是没有任何成功的
使用delete
无法做到这一点。关键字用于从JavaScript对象中删除属性。
通常情况下,人们要么添加一个这样的按钮:
<button ui-sref="events()">Close</button>
或者他们使用$state.go
命令:
$state.go("events", { });
在这种情况下,CCD_ 3是没有CCD_ 4参数的路线。
我强烈建议您研究一下UI路由器。它比ngRoute用途广泛得多,提供了上述模块所做的一切。
使用它,当没有eventId时,您可以定义一个单独的状态。
.state("mystate", {
url: "/",
template: "..."
})
.state("mystate.event", {
url: "/:eventId",
template: "..."
...
});
类似"/321"的URL将与状态mystate.event匹配,而"//strong>"将解析为mystate。如果你想点击某个东西并从一个状态转到另一个状态,你可以使用ui sref。
要转到没有任何参数的状态:
ui-sref="targetState";
进入参数状态:
ui-sref="targetState({ paramName: param });
在你的情况下,你可以有这样的东西:
<div ui-sref="mystate">Click to Close</div>
这就是它的全部内容。本教程涵盖了开始使用UI路由器所需的基本知识,您也可以在同一网站上找到关于同一主题的提示和技巧。
编辑
你也可以按照马丁的回答来做。
相关文章:
- 有没有办法用routerLink/router.navigation附加查询/路由参数
- 如何在JavaScript中获取路由参数
- 带斜杠-中断路由的节点JS路由参数
- (多个)路由参数的集合
- express/如何将路由参数传递到其他文件
- 无法获取用户 ID 路由参数以在反应路由器中继上工作
- Url.Action 将以前的 URL 与 VS IDE 中 JavaScript 中的当前路由参数相结合
- 仅更改一个路由参数
- 在表单提交时使用 URL 发送路由参数
- 路由参数为空
- 无法读取路由参数中未定义的属性“名称”
- 如何从组件外部访问路由参数
- 自定义骨干路由参数
- 角度 JS 路由参数 斜杠的随机数
- 使用角度 ui 路由器获取服务中的路由参数
- AngularJS ui-router 中的 URL 路由参数
- 如何检查 URL 是否仅包含一个路由参数
- 角度JS路由参数在路由时约束
- 带有 AngularJS 和路由参数的后退按钮循环
- 当路由参数更改时,工厂中的角度火更改引用