AngularJS更改URL而不刷新页面

时间:2016-02-18 10:49:12

标签: javascript angularjs route-provider

我正在使用AngularJS构建一个网站,并且在我正在尝试实施的场景中存在路由问题。 我正在尝试更改浏览器网址,并阻止AngularJS重定向到新的给定网址。这是场景:

  1. 用户从网址的页面中选择一个项目: www.mywebsite.com/my-page

  2. 所选项目在当前页面上作为模式打开,但网址为www.mywebsite.com/specific-page/item-name (此网址更改不应导致页面刷新,只是直观地更改网址)

  3. 当用户点击“后退”或关闭模态时,他应该回到: www.mywebsite.com/my-page (同样,此网址更改不应导致页面刷新,只是直观地更改网址)

  4. 可以在Pinterest网站上找到我正在尝试做的很好的参考。当用户单击某个项目时,会打开一个模式,更改URL,但不会刷新页面。当用户关闭模态并返回主页面时也会发生相同的情况。

    实施此方案的最佳方法是什么?

    感谢。

3 个答案:

答案 0 :(得分:0)

我使用ui-router来做这类事情。

它比标准angular-route / ngRoute

更灵活

答案 1 :(得分:0)

如果您使用的是modal,那么Angular Directives for Bootstrap是最佳方法。 它也可以帮助我做其他事情。

答案 2 :(得分:-1)

好的,我找到了未记录的AngularJS $浏览器对象。 它有$ browser.url方法,只更改浏览器的URL而不真正重定向页面。

https://github.com/angular/angular.js/blob/master/src/ng/browser.js