使用Angular,如何通过我的应用程序或浏览器从URL栏或后退/前进按钮更新URL时,如何添加更新哈希时触发的监视?
我有一个项目我正在使用带有ui.router的angularJS,如果用户点击某个事件来查看详细信息,则会显示一个后退按钮但是在点击后面时,我们会有一个非常长的事件列表(具有无限滚动) div的滚动重置回顶部!寻找一些关于是否有内置的建议,我可以利用它来记住这个滚动位置,我知道这是锚定服务,但我想知道是否有更适合停止角度重置导航滚动位置的东西?? 因为有一些相似的列表需要在滚动时记住它们的状态..我已经查看并尝试实现ui-router-extras dsr和sticky但是两者都没有工作..
示例在http:// codedef. com/hapzis_poc / .不是完整的证明,但应该能够向下滚动事件,点击并返回并保持在相同的滚动位置..
我将 Angular 用于单页应用程序。有时我有更长的项目清单。当用户向下滚动页面并单击该项目时,他们会转到该项目的详细视图。如果他们点击浏览器上的后退按钮,angular 会将他们带回列表,但它会返回到列表的顶部。
通常在一个简单的 HTML 页面上,如果您向下滚动一个页面,然后单击一个链接并在点击浏览器上的后退按钮时转到另一个页面,它会将您带回到您在该页面上的滚动位置。如果您正在浏览项目列表,这将非常有用。
有没有办法让 Angular 模仿这种行为,以便使用后退按钮将用户带回列表和相同的滚动位置?
我正在使用Angular.js 1.3,使用ui-router.我有3页,page1.html,page2.html,page3.html.
当用户点击page1时,page2将打开,但我想保存第1页的滚动状态,用户在点击之前,所以在点击后退按钮后,他将处于相同的滚动状态.
为了解决这个问题,我在page1.html上打开了page2.html,在iframe中,并给它绝对位置显示在page1.html上,我使用的是:
history.pushState({}, '', '/page2.html');
改变网址.这个实现工作正常.
现在,当用户点击page2.html上的链接时,它应该打开page3.html,就像我使用的普通链接一样:
$state.go("page3")
Run Code Online (Sandbox Code Playgroud)
问题是现在状态变化,并且page3.html加载,但url仍然是/page2.html,url没有变化.
我甚至尝试过:
history.pushState({}, '', '/page3.html');
Run Code Online (Sandbox Code Playgroud)
仍然网址没有变化.任何人都知道它为什么会发生.