以前的行为:
在导航到另一条路线时,更改路线或导航路径不会影响滚动位置。也就是说,内容可以更改,而滚动位置不会更改。
当前行为:
更改路线将使您回到页面顶部。
到目前为止已完成的操作:
在最新和新的Angular 6项目中进行了测试
这是一个错误吗?功能改变?还是我缺少一个参数。
答案 0 :(得分:11)
好像将'scrollPositionRestoration'设置为禁用可修复
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char* argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.show();
B* b = new B();
QObject::connect(b, SIGNAL(update_signal(bool, int)), &w, SLOT(m(bool, int)),
Qt::QueuedConnection);
b->handleEvent();
return a.exec();
}
答案 1 :(得分:2)
更改路线后,滚动位置不会更改。这始终是Angular的默认行为。
但是,许多开发人员正在手动执行window.scroll(0, 0)
来覆盖此行为。
我建议您检查代码中是否正在执行此操作。因为它可能是新安装的第三方库或其他开发人员的代码提交。
此外,根据以下官方文章:
Angular v6.1 Now Available — TypeScript 2.9, Scroll Positioning, and more
有一个新选项可以通过使用
来保持原始滚动位置 RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})
我相信这与您所提出的问题没有直接关系,只是一些好消息。
答案 2 :(得分:0)
如果它不适用于ScrollPositionRestoration:“ enabled”配置,请为容器使用[scrollTop]属性绑定并分配值
答案 3 :(得分:0)
如果滚动恢复不起作用,请创建一个服务,该服务可在更改该路线时更新当前滚动位置,并将滚动位置分配给ngOnit上的新滚动组件的服务滚动位置,然后重置服务滚动。