AngularJS 在不刷新页面的情况下更改 URL
AngularJS changing URL without refreshing page
我正在使用 AngularJS 构建网站,但在我尝试实现的场景中遇到了路由问题。
我正在尝试更改浏览器 url,并防止 AngularJS 重定向到新给定的 url。这是场景:
用户从 url 的页面中选择了一个项目:
www.mywebsite.com/my-page
所选项目正在当前页面上作为模式打开,但是 url www.mywebsite.com/specific-page/item-name
(这个url改变应该不会引起页面刷新,只是视觉上改变url)
当用户点击 'Back' 或关闭模式时,他应该返回:
www.mywebsite.com/my-page
(同样,这个 url 的变化不应该导致页面刷新,只是改变 url 视觉)
可以在 Pinterest 网站上找到对我正在尝试做的事情的一个很好的参考。当用户单击某个项目时,将打开一个模式,更改 url,但不会刷新页面。当用户关闭模式并返回主页时,也会发生同样的情况。
实现此方案的最佳方法是什么?
谢谢。
我用 ui-router
做那种事情。
它比标准 angular-route
/ ngRoute
更灵活
如果您使用 modal
,那么 Angular Directives for Bootstrap 是最好的方法。
它对我的其他事情也有帮助。
好的,我找到了未记录的 AngularJS $browser 对象。
它有 $browser.url 方法,只改变浏览器的 url 而不会真正重定向页面。
https://github.com/angular/angular.js/blob/master/src/ng/browser.js
我正在使用 AngularJS 构建网站,但在我尝试实现的场景中遇到了路由问题。 我正在尝试更改浏览器 url,并防止 AngularJS 重定向到新给定的 url。这是场景:
用户从 url 的页面中选择了一个项目: www.mywebsite.com/my-page
所选项目正在当前页面上作为模式打开,但是 url www.mywebsite.com/specific-page/item-name (这个url改变应该不会引起页面刷新,只是视觉上改变url)
当用户点击 'Back' 或关闭模式时,他应该返回: www.mywebsite.com/my-page (同样,这个 url 的变化不应该导致页面刷新,只是改变 url 视觉)
可以在 Pinterest 网站上找到对我正在尝试做的事情的一个很好的参考。当用户单击某个项目时,将打开一个模式,更改 url,但不会刷新页面。当用户关闭模式并返回主页时,也会发生同样的情况。
实现此方案的最佳方法是什么?
谢谢。
我用 ui-router
做那种事情。
它比标准 angular-route
/ ngRoute
如果您使用 modal
,那么 Angular Directives for Bootstrap 是最好的方法。
它对我的其他事情也有帮助。
好的,我找到了未记录的 AngularJS $browser 对象。 它有 $browser.url 方法,只改变浏览器的 url 而不会真正重定向页面。
https://github.com/angular/angular.js/blob/master/src/ng/browser.js