如何在不刷新整个页面的情况下更改 URL?

How to change URL without refreshing the Whole Page?

我正在 angular 中开发一个站点,假设我已经导航到 iphone 详细信息页面并且其当前 url 是 "localhost:8080/iphone/details" 。 现在我必须实现一个应用 coupons.In 的新功能,假设用户点击来自外部站点的一些超链接, "localhost:8080/iphone/details?promotionalCode=12345"

用户将登陆该页面(页面将在该模式弹出后加载)和一个模式弹出窗口。我将从查询参数中获取促销代码的详细信息。

但我的要求是,如果我单击交叉(关闭模态),模态关闭并且 url 的状态应更改为 localhost:8080/iphone/details。

到目前为止我做了什么。

我已经使用 $location.search().promocode 来获取促销代码,如果这是有效的,那么模态将弹出,并且在关闭模态时我正在调用我正在使用 $[= 重置状态的函数27=] ,但这使整个页面得到刷新。对此有何建议?

您将需要使用 $location.search()

要获取查询参数 ?promotionalCode=12345,您需要执行 $location.search('promotionalCode',12345).

请看:AngularJS Documentation for $location

您可以为此使用 $stateProvider,只需提供状态

    Example:   .state('app.page', {
            url: 'iphone/details',
            title: 'Coupon Applied', })