Javascript 从url AngularJS中删除路由参数

Javascript 从url AngularJS中删除路由参数,javascript,angularjs,angular-routing,Javascript,Angularjs,Angular Routing,我想从url中删除路由参数 我的URL可以是和 我的$routeProvider设置为“/events/:eventId?”和“user/:userId/events/:eventId?” 当设置了eventId时,我显示弹出窗口。当用户单击“关闭”按钮时,我想从url中删除eventId。我怎么能做到 p、 我在找这样的东西 delete $route.current.params.eventId; 但是如果没有任何成功你就不能用删除来实现这一点。关键字用于从JavaScript对象中删除属

我想从url中删除路由参数

我的URL可以是和 我的$routeProvider设置为“/events/:eventId?”和“user/:userId/events/:eventId?”

当设置了eventId时,我显示弹出窗口。当用户单击“关闭”按钮时,我想从url中删除eventId。我怎么能做到

p、 我在找这样的东西

delete $route.current.params.eventId;

但是如果没有任何成功

你就不能用
删除
来实现这一点。关键字用于从JavaScript对象中删除属性

通常,人们只需添加如下按钮:

<button ui-sref="events()">Close</button>

在这种情况下,
事件
是您没有
事件ID
参数的路线。

您不能使用
删除
。关键字用于从JavaScript对象中删除属性

通常,人们只需添加如下按钮:

<button ui-sref="events()">Close</button>

在这种情况下,
事件
是没有
事件ID
参数的路线。

我强烈建议您研究一下。它比ngRoute更通用,提供上述模块所做的一切

使用它,您可以定义一个单独的状态,在没有事件ID时转到该状态

.state("mystate", {
   url: "/",
   template: "..."
})
.state("mystate.event", {
   url: "/:eventId",
   template: "..."
   ...
});
类似“/321”的URL将匹配状态mystate.event,而“/”将解析为mystate。 如果要单击某个对象并从一种状态切换到另一种状态,可以使用ui-sref

要转到没有任何参数的状态:

ui-sref="targetState";
要转到具有参数的状态,请执行以下操作:

ui-sref="targetState({ paramName: param });
在您的情况下,您可以有如下内容:

<div ui-sref="mystate">Click to Close</div>
单击关闭
这就是一切。介绍了开始使用UI路由器所需的基本知识,您还可以在同一站点上找到关于同一主题的提示和技巧

编辑


你也可以按照Martin回答中描述的方法来做。

我强烈建议你调查一下。它比ngRoute更通用,提供上述模块所做的一切

使用它,您可以定义一个单独的状态,在没有事件ID时转到该状态

.state("mystate", {
   url: "/",
   template: "..."
})
.state("mystate.event", {
   url: "/:eventId",
   template: "..."
   ...
});
类似“/321”的URL将匹配状态mystate.event,而“/”将解析为mystate。 如果要单击某个对象并从一种状态切换到另一种状态,可以使用ui-sref

要转到没有任何参数的状态:

ui-sref="targetState";
要转到具有参数的状态,请执行以下操作:

ui-sref="targetState({ paramName: param });
在您的情况下,您可以有如下内容:

<div ui-sref="mystate">Click to Close</div>
单击关闭
这就是一切。介绍了开始使用UI路由器所需的基本知识,您还可以在同一站点上找到关于同一主题的提示和技巧

编辑

你也可以按照马丁回答中描述的方法来做