【问题标题】:How to change URL without refreshing the Whole Page?如何在不刷新整个页面的情况下更改 URL?
【发布时间】:2016-03-06 07:52:29
【问题描述】:

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

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

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

到目前为止我做了什么。

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

【问题讨论】:

    标签: angularjs url query-parameters route-provider


    【解决方案1】:

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

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

    请看:AngularJS Documentation for $location

    【讨论】:

    • 这里我的问题是,假设用户在这个 URL“example.com/#/some/path?foo=bar”上并且有一个模式,现在在关闭模式时,只有模式应该关闭并且 URL 应该更改为“example.com/#/some/path”而不重新加载整个页面。
    • @Aditya 看起来您想清除搜索。 $location.search({}) 是您所需要的。
    【解决方案2】:

    你可以使用 $stateProvider 来给出状态

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 2017-03-24
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 2011-09-01
      相关资源
      最近更新 更多